优秀的编程知识分享平台

网站首页 > 技术文章 正文

Delphi另一个日志库LoggerPro delphi写日志控件

nanyue 2024-12-29 04:53:38 技术文章 3 ℃

之前的文章给大家分享过如何在Delphi中使用Log4D生成日志。今天继续分享另一个更强大的Delphi日志组件LoggerPro。

基本用法

LoggerPro提供了一个全局日志单元LoggerPro.GlobalLogger,默认把日志写到文件中,并且可以自动切割日志。该单元对外提供了Log日志对象,开箱即用,可以不用做过多额外设置。

LoggerPro按照日志等级,提供了其他常用的Info,WARN,Error,Debug等方法。

program ConsoleApp20240418;

{$APPTYPE CONSOLE}

uses
  System.SysUtils,
  LoggerPro.GlobalLogger; 

begin
  try    
    Log.Debug('Debug message', 'main');  //第二个参数为标签,用于生成日志文件
    Log.Info('Info message', 'main');
    Log.Warn('Warning message', 'main');
    Log.Error('Error message', 'errors');
    WriteLn('在 "ConsoleApp20240418.00.main.log" 和 "ConsoleApp20240418.00.errors.log" 文件中查看日志');
    ReadLn;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;

end.

生成的日志文件如下:

默认日志格式如下:

自定义日志

我们也可以自定义日志信息。上面的案例,日志址输出到了文件,我们也可以同时把日志输出到控制台。也可以设置其他日志格式,比如文件名,日志切分信息,日志格式等等。

下面的案例,日志可以同时输出到文件和控制台。

  • TLoggerProFileAppender,控制日志输出到文件。可以在Create构造函数提供更多设置
  • TLoggerProConsoleAppender,控制日志输出到控制台。可以在Create构造函数提供更多设置参数。
program ConsoleApp20240418;

{$APPTYPE CONSOLE}

{$R *.res}

uses
  System.SysUtils,
  LoggerPro,
  LoggerPro.FileAppender,
  LoggerPro.ConsoleAppender
  ;

var
  Logger: ILogWriter;

procedure SetupLogger;
begin
  Logger := BuildLogWriter([
    TLoggerProFileAppender.Create,
    TLoggerProConsoleAppender.Create
  ]);
end;

procedure Test2;
begin
  try
    Logger.Debug('Debug msg', 'main');
    Logger.Info('Info msg', 'main');
    Logger.Error('Error. Quitting', 'errors');
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end;


begin
  try
    // Setup logger
    SetupLogger;
    // Use logger
    Test2;
    Readln;
  except
    on E: Exception do
      Writeln(E.ClassName, ': ', E.Message);
  end;
end.
最近发表
标签列表