TIcsLogger.DoDebugLog uses non-optimal algorithm dealing with timestamps: it is 
being added to Msg three times.
I suggest change the code as following:

procedure TIcsLogger.DoDebugLog(
    Sender      : TObject; 
    LogOption   : TLogOption;
    Msg   : String); // remove const to avoid declaring a local variable
begin
{$IFNDEF NO_LOGGER_MT}
    Lock;
    try
{$ENDIF}
{$IFDEF VCL}
        if csDestroying in Componentstate then             { V1.02 }
            Exit;
{$ENDIF}
        if loAddStamp in FLogOptions then
           Msg := AddTimeStamp + FTimeStampSeparator + Msg; // construct new Msg

        if loDestEvent in FLogOptions then
            if Assigned(FOnIcsLogEvent) then
                FOnIcsLogEvent(Sender, LogOption, Msg);

        if loDestOutDebug in FLogOptions then
            OutputDebugString(TOutputDebugStringType(Msg));

        if loDestFile in FLogOptions then
            WriteToLogFile(Msg + #13#10); {V6.03}
{$IFNDEF NO_LOGGER_MT}
    finally
        Unlock;
    end;
{$ENDIF}
end;

-- 
Anton
--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to