[fpc-pascal] TEventLog.FileName location: Change default file location for filename without change unit code.

phoebus phoebus frphoebus at yahoo.fr
Tue Sep 21 15:28:11 CEST 2010


Hi,

I'm using FPC 2.2.4 with Lazarus.

The unit eventlog is great for logging events. SO i use it.
 
My question is how to change the default location for the filename for Linxu 
ssytem which is harcoded in the code.
The documentation for TEventLog.FileName wrote:
" FileName is the name of the log file used to log messages (...). The file is 
then located in the "/tmp" directory on unix-like systems, or in the application 
directory for Dos/Windows like systems
 
Line 56 to 60 from eventlog.inc (fpc\2.2.4\source\packages\fcl-base\src\unix)
    Function TEventLog.DefaultFileName : String;
    begin
      Result:='/tmp/'+ChangeFileExt(ExtractFileName(Paramstr(0)),'.log');
    end;
I can of course change the function code like Windows to have the log in the 
same directory thtat the application.:
Line 18 to 22 from eventlog.inc (fpc\2.2.4\source\packages\fcl-base\src\windows)
    Function TEventLog.DefaultFileName : String;
    begin
      Result:=ChangeFileExt(Paramstr(0),'.log');
    end;

Could you indicate a nice solution to indicate log file location in using the 
unit eventlog without change fpc code?
 
FYI: this is the code i use:
    program project1;
    {$mode objfpc}{$H+}
    uses  Sysutils, eventlog,
      {$IFDEF UNIX}  BaseUnix,{$IFDEF UseCThreads}
    cthreads,
      {$ENDIF}{$ENDIF}
    Classes
      { you can add units after this };
    {$IFDEF WINDOWS}{$R project1.rc}{$ENDIF}
     var
      A : TEventLog;
    begin
      A := TEventLog.Create(nil);
      A.LogType := ltFile;
      A.FileName := 'log';
      A.Active := True;
      A.Info('Program started.');
      A.Info('Info from A.');
      A.Warning('Info from A.');
      A.Error('Info from A.');
      A.Debug('Info from A.');
      A.Info('Program stopped.');
      FreeAndNil(A);
     end.
 
Thanks for your advice.
Regards,
Phoebus


      



More information about the fpc-pascal mailing list