Hermod
A cross-platform, modular and fully GDPR-compliant email archival solution!
Loading...
Searching...
No Matches
Hermod.Core.Logger Class Reference

Custom logger class for Hermod; internally uses Serilog. More...

Public Member Functions

 Logger ()
 
 Logger (bool enableConsole, bool enableDebug, bool enableFile)
 
ILogger GetLogger ()
 Gets the instance of the Serilog logger.
 

Protected Member Functions

ILogger CreateLogger ()
 Creates a new instance of the Serilog logger.
 

Properties

bool EnableConsoleOutput = false [get, set]
 Gets or sets a value indicating whether or not to enable console logging.
 
bool EnableDebugOutput = false [get, set]
 
bool EnableFileOutput = true [get, set]
 
LogEventLevel ConsoleLogLevel = LogEventLevel.Debug [get, set]
 
LogEventLevel FileLogLevel = LogEventLevel.Information [get, set]
 
FileInfo? LogFilePath = null [get, set]
 
long MaxLogFileSize = (long)Math.Pow(1024, 3) * 5 [get, set]
 
RollingInterval FileRollingInterval = RollingInterval.Day [get, set]
 
bool RollOnFileSizeLimit = true [get, set]
 

Private Attributes

ILogger? m_logger
 

Detailed Description

Custom logger class for Hermod; internally uses Serilog.

Definition at line 12 of file Logger.cs.

Constructor & Destructor Documentation

◆ Logger() [1/2]

Hermod.Core.Logger.Logger ( )
inline

Definition at line 45 of file Logger.cs.

45{ }

Referenced by Hermod.Program.InitialiseLogger().

◆ Logger() [2/2]

Hermod.Core.Logger.Logger ( bool  enableConsole,
bool  enableDebug,
bool  enableFile 
)
inline

Definition at line 47 of file Logger.cs.

47 {
48 EnableConsoleOutput = enableConsole;
49 EnableDebugOutput = enableDebug;
50 EnableFileOutput = enableFile;
51 }
bool EnableFileOutput
Definition: Logger.cs:25
bool EnableDebugOutput
Definition: Logger.cs:22
bool EnableConsoleOutput
Gets or sets a value indicating whether or not to enable console logging.
Definition: Logger.cs:17

References Hermod.Core.Logger.EnableConsoleOutput, Hermod.Core.Logger.EnableDebugOutput, and Hermod.Core.Logger.EnableFileOutput.

Member Function Documentation

◆ CreateLogger()

ILogger Hermod.Core.Logger.CreateLogger ( )
inlineprotected

Creates a new instance of the Serilog logger.

Definition at line 56 of file Logger.cs.

56 {
57 var logCfg = new LoggerConfiguration();
59 logCfg.WriteTo.Console(ConsoleLogLevel, applyThemeToRedirectedOutput: true);
60 }
62 logCfg.WriteTo.Debug(LogEventLevel.Debug);
63 }
64 if (EnableFileOutput && LogFilePath != null) {
65 logCfg.WriteTo.File(
66 new JsonFormatter(),
67 LogFilePath.FullName,
70 rollingInterval: FileRollingInterval,
71 rollOnFileSizeLimit: RollOnFileSizeLimit,
72 shared: true
73
74 );
75 }
76
77 m_logger = logCfg.CreateLogger();
78 return m_logger;
79 }
LogEventLevel ConsoleLogLevel
Definition: Logger.cs:30
ILogger? m_logger
Definition: Logger.cs:43
bool RollOnFileSizeLimit
Definition: Logger.cs:41
FileInfo? LogFilePath
Definition: Logger.cs:35
RollingInterval FileRollingInterval
Definition: Logger.cs:39
LogEventLevel FileLogLevel
Definition: Logger.cs:33
long MaxLogFileSize
Definition: Logger.cs:37

References Hermod.Core.Logger.ConsoleLogLevel, Hermod.Core.Logger.EnableConsoleOutput, Hermod.Core.Logger.EnableDebugOutput, Hermod.Core.Logger.EnableFileOutput, Hermod.Core.Logger.FileLogLevel, Hermod.Core.Logger.FileRollingInterval, Hermod.Core.Logger.LogFilePath, Hermod.Core.Logger.m_logger, Hermod.Core.Logger.MaxLogFileSize, and Hermod.Core.Logger.RollOnFileSizeLimit.

◆ GetLogger()

ILogger Hermod.Core.Logger.GetLogger ( )

Gets the instance of the Serilog logger.

Returns
An instance of ILogger

Referenced by Hermod.Program.InitialiseLogger().

Member Data Documentation

◆ m_logger

ILogger? Hermod.Core.Logger.m_logger
private

Definition at line 43 of file Logger.cs.

Referenced by Hermod.Core.Logger.CreateLogger().

Property Documentation

◆ ConsoleLogLevel

LogEventLevel Hermod.Core.Logger.ConsoleLogLevel = LogEventLevel.Debug
getset

Definition at line 30 of file Logger.cs.

30{ get; set; } = LogEventLevel.Debug;

Referenced by Hermod.Core.Logger.CreateLogger().

◆ EnableConsoleOutput

bool Hermod.Core.Logger.EnableConsoleOutput = false
getset

Gets or sets a value indicating whether or not to enable console logging.

Definition at line 17 of file Logger.cs.

17{ get; set; } = false;

Referenced by Hermod.Core.Logger.CreateLogger(), and Hermod.Core.Logger.Logger().

◆ EnableDebugOutput

bool Hermod.Core.Logger.EnableDebugOutput = false
getsetprivate

Definition at line 22 of file Logger.cs.

22{ get; set; } = false;

Referenced by Hermod.Core.Logger.CreateLogger(), and Hermod.Core.Logger.Logger().

◆ EnableFileOutput

bool Hermod.Core.Logger.EnableFileOutput = true
getset

Definition at line 25 of file Logger.cs.

25{ get; set; } = true;

Referenced by Hermod.Core.Logger.CreateLogger(), and Hermod.Core.Logger.Logger().

◆ FileLogLevel

LogEventLevel Hermod.Core.Logger.FileLogLevel = LogEventLevel.Information
getset

Definition at line 33 of file Logger.cs.

33{ get; set; } = LogEventLevel.Information;

Referenced by Hermod.Core.Logger.CreateLogger().

◆ FileRollingInterval

RollingInterval Hermod.Core.Logger.FileRollingInterval = RollingInterval.Day
getset

Definition at line 39 of file Logger.cs.

39{ get; set; } = RollingInterval.Day;

Referenced by Hermod.Core.Logger.CreateLogger().

◆ LogFilePath

FileInfo? Hermod.Core.Logger.LogFilePath = null
getset

Definition at line 35 of file Logger.cs.

35{ get; set; } = null;

Referenced by Hermod.Core.Logger.CreateLogger().

◆ MaxLogFileSize

long Hermod.Core.Logger.MaxLogFileSize = (long)Math.Pow(1024, 3) * 5
getset

Definition at line 37 of file Logger.cs.

37{ get; set; } = (long)Math.Pow(1024, 3) * 5; // default is 5MiB

Referenced by Hermod.Core.Logger.CreateLogger().

◆ RollOnFileSizeLimit

bool Hermod.Core.Logger.RollOnFileSizeLimit = true
getset

Definition at line 41 of file Logger.cs.

41{ get; set; } = true;

Referenced by Hermod.Core.Logger.CreateLogger().


The documentation for this class was generated from the following file: