/// <summary> /// This Constructor will setup the logging manager based on the the Logging Targets passed in. /// </summary> /// <param name="loggingTargets">List of logging targets</param> /// <param name="backupFileLog">Failsafe backup log file in case logging to any targets throws exception</param> /// <param name="configuredTraceLevel">What trace level to log, e.g., Level2 logs Level2, and Level1</param> public LoggingMgr(List <ILoggingTarget> loggingTargets , FileLog backupFileLog , enumTraceLevel configuredTraceLevel) { InitLoggingTargets(loggingTargets); _configuredTraceLevel = configuredTraceLevel; _backupFileLog = backupFileLog; }
/// <summary> /// Writes trace message to log. /// </summary> /// <param name="stopWatchStarted"></param> /// <param name="traceToken"></param> /// <param name="requiredTraceLevel"></param> public void Trace(Stopwatch stopWatchStarted , string traceToken , enumTraceLevel requiredTraceLevel) { string message = string.Format("Total Elapsed MSec: {0}; Token: {1}{2}" , stopWatchStarted.ElapsedMilliseconds , traceToken , Environment.NewLine); TraceMessage(message, requiredTraceLevel); }
/// <summary> /// This constructor will create a LoggingMgr that writes to the Windows Event Log and a backup file if that /// fails. It will verify the event source exists and the EventLogDirectory. /// If the directory does not exist, it will create it. /// If the source cannot be verified (due to insufficient privileges), /// an exception will be raised and thrown back to the caller containing /// the original exception for items with critical priority. /// </summary> /// <param name="logName">Name of the log to write to; e.g. Application</param> /// <param name="logSource">The source that will be registered to the log</param> /// <param name="eventLogDirectory">Directory to files containning messages that cannot be written to primary device</param> /// <param name="configuredTraceLevel">Trace level.</param> public LoggingMgr(string logName , string logSource , string eventLogDirectory , enumTraceLevel configuredTraceLevel) { _backupFileLog = new FileLog(logName, eventLogDirectory, enumEventPriority.All); _configuredTraceLevel = configuredTraceLevel; InitLoggingTargets(new List <ILoggingTarget> { new WindowsEventLog(logName, logSource, _backupFileLog, enumEventPriority.All) }); }
private void TraceMessage(string Message , enumTraceLevel requiredTraceLevel) { if (requiredTraceLevel <= _configuredTraceLevel) { System.Diagnostics.Trace.Write(Message); WriteToLog(Message, EventLogEntryType.Information, enumEventPriority.Trace); if (TraceToWindow) { _traceToWindowLog.Write(Message); } } }
/// <summary> /// Creates a LoggingMgr instance using the configuration values referred to by the given config key /// into the LoggingConfigurations section of the app.config file /// </summary> /// <param name="loggingConfigKey">Key into LoggingConfigurations section to obtain settings</param> public LoggingMgr(string loggingConfigKey) { _loggingKey = loggingConfigKey; _configuredOptions.AppendFormat("LogKey: {0}{1}", loggingConfigKey, Environment.NewLine); LoggingConfiguration loggingConfigSection = AppConfigMgr.GetSection <LoggingConfiguration>(LoggingConfiguration.ConfigSectionName); LoggingElement loggingConfig = loggingConfigSection.GetLoggingConfig(loggingConfigKey); _backupFileLog = new FileLog(loggingConfig.BackupLogFileName , loggingConfig.BackupLogFileDirectory , enumEventPriority.All); _configuredTraceLevel = GetTraceLevelFromString(loggingConfig.TraceLevel); _configuredOptions.AppendFormat("BackupLogFile: {0}{1}", loggingConfig.BackupLogFileName, Environment.NewLine); _configuredOptions.AppendFormat("BackupLogFileDir: {0}{1}", loggingConfig.BackupLogFileDirectory, Environment.NewLine); InitLoggingTargets( BuildLoggingTargetsFromConfig(_backupFileLog, loggingConfig)); }
/// <summary> /// Writes trace message to log. /// </summary> /// <param name="startTime"></param> /// <param name="traceToken"></param> /// <param name="requiredTraceLevel"></param> public void Trace(DateTime startTime , string traceToken , enumTraceLevel requiredTraceLevel) { if (startTime != DateTime.MinValue) { TimeSpan duration = DateTime.Now - startTime; string message = string.Format("Total Min: {0}; Sec: {1}; MSec: {2}; Token: {3}{4}" , duration.TotalMinutes , duration.TotalSeconds , duration.TotalMilliseconds , traceToken , Environment.NewLine); TraceMessage(message, requiredTraceLevel); } else { TraceMessage(traceToken, requiredTraceLevel); } }
/// <summary> /// Writes trace message to log. /// </summary> /// <param name="traceToken"></param> /// <param name="requiredTraceLevel"></param> public void Trace(string traceToken, enumTraceLevel requiredTraceLevel) { Trace(DateTime.MinValue, traceToken, requiredTraceLevel); }