SynLog日志组件捕获成吨可调试异常

工程设置(Release or Debug) Delphi Compiler -> Linking -> Map file -> Detailed Delphi Compiler -> Compiling -> Debug information -> Debug information

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
{*******************************************************}
{                                                       }
{           工程: 短信专业版                            }
{       单元功能: 日志类                                }
{           作者: Linx                                  }
{           时间: 2017-12-10 17:29:47                   }
{                                                       }
{       版权所有 (C) 2017 Soesoft                       }
{                                                       }
{*******************************************************}

unit SMSPro.Log.Logger;

interface

uses
  System.SysUtils,
  Vcl.ComCtrls,
  Data.DBXCommon;

type
  TSMSLogger = class
  public
    class procedure InitSynLog();
    function GetCurLogFileName:string;
  end;

implementation

uses
  SynLog,
  SynCommons;

{ TSoeLogger }

class procedure TSMSLogger.InitSynLog;
begin
  ForceDirectories('.\log\smspro');
  TSynLog.Family.Level := LOG_VERBOSE;
  TSynLog.Family.Level := [sllException, sllExceptionOS,sllInfo,sllError,sllEnter];
  TSynLog.Family.LocalTimeStamp := True;
  //不记录环境变量
  TSynLog.Family.NoEnvironmentVariable := True;
  //记录单元名
  TSynLog.Family.WithUnitName := True;
  //行结尾符号
  TSynLog.Family.EndOfLineCRLF := True;
  TSynLog.Family.DestinationPath := '.\log\smspro\';
  //TSynLog.Family.PerThreadLog := true;
  //TSynLog.Family.HighResolutionTimeStamp := true;
  //TSynLog.Family.AutoFlushTimeOut := 5;
  //TSynLog.Family.StackTraceUse := stOnlyAPI;
  //lz压缩
  TSynLog.Family.OnArchive := EventArchiveSynLZ;
  //TSynLog.Family.OnArchive := EventArchiveZip;
  TSynLog.Family.ArchiveAfterDays := 7; // archive after one day
  TSynLog.Family.RotateFileSizeKB := 10240;
  TSynLog.Family.RotateFileDailyAtHour := 20;
  //忽略的异常(只是不记录到日志里)
  TSynLog.Family.ExceptionIgnore.Add(TDBXError);
  TSynLog.Family.ExceptionIgnore.Add(EOSError);
end;

function TSMSLogger.GetCurLogFileName: string;
begin
  Exit(TSynLog.Add.FileName);
end;

end.
Licensed under CC BY-NC-SA 4.0
记录平时瞎折腾遇到的各种问题, 方便查找
使用 Hugo 构建
主题 Stack 3.29.0Jimmy 设计