/
LoggerProConfig.pas
81 lines (62 loc) · 1.54 KB
/
LoggerProConfig.pas
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
70
71
72
73
74
75
76
77
78
79
80
81
unit LoggerProConfig;
interface
uses
LoggerPro;
function Log: ILogWriter;
implementation
uses
LoggerPro.FileAppender,
LoggerPro.EMailAppender,
LoggerPro.OutputDebugStringAppender,
System.SysUtils,
idSMTP, System.IOUtils,
IdIOHandlerStack, IdSSL,
IdSSLOpenSSL, IdExplicitTLSClientServerBase;
var
_Log: ILogWriter;
const
USE_SSL = true;
function Log: ILogWriter;
begin
Result := _Log;
end;
function GetSMTP: TidSMTP;
begin
Result := TidSMTP.Create(nil);
try
if USE_SSL then
begin
Result.IOHandler := TIdSSLIOHandlerSocketOpenSSL.Create(Result);
end;
Result.Host := 'smtp.gmail.com';
Result.Port := 25;
Result.UseTLS := TIdUseTLS.utUseImplicitTLS;
Result.AuthType := satDefault;
Result.Username := 'daniele.teti@gmail.com';
if not TFile.Exists('config.txt') then
raise Exception.Create('Create a "config.txt" file containing the password');
Result.Password := TFile.ReadAllText('config.txt'); // '<yourpassword>';
except
Result.Free;
raise;
end;
end;
procedure SetupLogger;
const
{$IFDEF DEBUG}
LOG_LEVEL = TLogType.Debug;
{$ELSE}
LOG_LEVEL = TLogType.Warning;
{$ENDIF}
var
lEmailAppender: ILogAppender;
begin
lEmailAppender := TLoggerProEMailAppender.Create(GetSMTP, 'LoggerPro<daniele.teti@gmail.com>', 'd.teti@bittime.it');
lEmailAppender.SetLogLevel(TLogType.Error);
_Log := BuildLogWriter([TLoggerProFileAppender.Create,
lEmailAppender,
TLoggerProOutputDebugStringAppender.Create], nil, LOG_LEVEL);
end;
initialization
SetupLogger;
end.