Sorry, I'm still unable to reproduce the problem

I just kicked up an alias to make sure we're doing the same things:

Code:
alias logtest {
  var %ch = $iif($2,$2,#testlogging)
  var %fn = $+($mircdirlogs\,%ch,.log)

  if (%ch ischan) {
    if ($1) { clear %ch }
    ;; Initially set logging up
    !log on %ch -f %fn
    !echo -e %ch LOG ON [[ !log on %ch -f %fn ]]
    !echo %ch $iif($chan(%ch).logfile,$v1,$!null)
    !echo %ch $readini($mircini,logging,%ch)

    ;; turn logging off
    !log off %ch
    !echo -e %ch LOG ON [[ !log off %ch ]]
    !echo %ch LOGFILE: $iif($chan(%ch).logfile,$v1,$!null)
    !echo %ch INI    : $readini($mircini,logging,%ch)

    ;; Re-start logging - using same parameters as before
    !log on %ch -f %fn
    !echo -e %ch LOG ON [[ !log on %ch -f %fn ]]
    !echo %ch LOGFILE: $iif($chan(%ch).logfile,$v1,$!null)
    !echo %ch INI    : $readini($mircini,logging,%ch)
  }
  else {
    echo -a You must already have joined %ch
  }
}


For me, when I join #testlogging, then type "/logtest 1" this gives:

Code:
* Logging for #testlogging started
-
LOG ON [ !log on #testlogging -f I:\mIRC\logs\#testlogging.log ]
-
I:\mIRC\logs\#testlogging.DALnet.1.log
logs\#testlogging.log
* Logging for #testlogging halted
-
LOG ON [ !log off #testlogging ]
-
LOGFILE: $null
INI : off
* Logging for #testlogging started
-
LOG ON [ !log on #testlogging -f I:\mIRC\logs\#testlogging.log ]
-
LOGFILE: I:\mIRC\logs\#testlogging.DALnet.1.log
INI : logs\#testlogging.log


Which to me suggests all is in order. For you?