[Delphi] Delphi開源日誌框架Log4D

  • 2019 年 10 月 16 日
  • 筆記

1. 安裝

Log4D下載:

官網地址

LoggerPro下載

GitHub地址

特點:

log4d簡單易用、性能穩定

LoggerPro貌似功能很強大,只是沒有詳細的文檔,懶得翻源碼

安裝步驟

Log4D是開源的,所以可以進行重新編譯,,解壓到文件夾。打開文件夾"…log4delphi-0.8",新建一個文件夾"build";編譯的時候可能出現個錯誤提示TFileUnit不存在直接將他刪除重新編譯即可!

導入Delphi:Tool–>Options–>Environment Options—>Delphi Options–Library–>Library path

2. 使用

載入配置文件

菜單—>Project–>View Source

uses    Vcl.Forms,    TConfiguratorUnit, {需要引用該單元}    Unit1 in 'Unit1.pas' {Form1};    {$R *.res}    begin    Application.Initialize;    Application.MainFormOnTaskbar := True;    doPropertiesConfiguration('log4delphi.properties'); { 初始化,讀取屬性 }    Application.CreateForm(TForm1, Form1);    Application.Run;    end.

使用

unit Unit1;    interface  //TLoggerUnit需要引入該單元  uses    TLoggerUnit, Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,    System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls;    type    TForm1 = class(TForm)      Button1: TButton;      procedure Button1Click(Sender: TObject);    private      { Private declarations }    public      { Public declarations }    end;    var    Form1: TForm1;    implementation    {$R *.dfm}    procedure TForm1.Button1Click(Sender: TObject);  begin    TLogger.GetInstance.Debug('按鈕1被點了');   {獲取TLogger實例}  end;  end.  

3. 配置文件(log4delphi.properties)

# 控制輸出的資訊類別  log4delphi.rootLogger=DEBUG,fileAppender  #單個文件  log4delphi.appender.fileAppender=TFileAppender  #從程式碼中得出多個文件保存日誌。單個文件的最大尺寸使用MaxFileSize設置,文件個數使用MaxBackupIndex設置。  log4delphi.appender.fileAppender=TRollingFileAppender  log4delphi.appender.fileAppender.MaxBackupIndex=20  log4delphi.appender.fileAppender.MaxFileSize=3M  #文件編碼,否則日誌文件內容會亂碼  log4j.appender.A1.Encoding=UTF-8  #文件名稱  log4delphi.appender.fileAppender.File=app.log  #exe所在目錄  log4delphi.appender.fileAppender.AppDir=true  #追加方式  log4delphi.appender.fileAppender.Append=true  #設置Layout  log4delphi.appender.fileAppender.layout=TPatternLayout  #輸出格式  log4delphi.appender.fileAppender.layout.Pattern=%d{yyyy-mm-dd hh:nn:ss:zzz} [%5p] [%L] [%e] %m%n