/// <summary> /// Set up logging for the tool. /// </summary> /// <param name="fileLogPath">The path to the desired log file</param> /// <param name="flushEachLine">A flag controlling whether to flush each line</param> public static void SetupFileLogger(string fileLogPath, bool flushEachLine = true) { Logger.LogDecorations decorations = Logger.LogDecorations.None; // Normal log level for the tool, printing everything but debug messages. Logger.LogLevels levels = Logger.LogLevels.All & ~Logger.LogLevels.Debug; #if DEBUG decorations = Logger.LogDecorations.All; levels = Logger.LogLevels.All; #endif FileLog fileLog = new FileLog { LogLevels = levels, LogDecorations = decorations, LogFilePath = fileLogPath }; fileLog.FlushEachLine = flushEachLine; Logger.Info( "Log file is located under: {0}", fileLog.LogFilePath); Logger.Info(); AddProvider(fileLog); }
/// <summary> /// Processes and returns the log message /// </summary> /// <param name="logDecoration">log decoration</param> /// <param name="logLevel">log level</param> /// <returns>log message</returns> public string GetLogMessage(Logger.LogDecorations logDecoration, Logger.LogLevels logLevel) { StringBuilder messageBuilder = new StringBuilder(this.logMessage.Length); messageBuilder.Insert(0, this.logMessage); if (logDecoration != Logger.LogDecorations.None) { if (logDecoration.HasFlag(Logger.LogDecorations.Detail)) { messageBuilder.Insert(0, this.logDetailInfo); } if (logDecoration.HasFlag(Logger.LogDecorations.LogLevel)) { messageBuilder.Insert(0, this.logLevelInfo); } if (logDecoration.HasFlag(Logger.LogDecorations.Time)) { messageBuilder.Insert(0, this.logTimeInfo); } } // Check to see if we need to add exception info to message. if (logLevel.HasFlag(Logger.LogLevels.ExpStack) && (this.logMessageArgs != null) && (this.logMessageArgs[0] is ExpMessageArg)) { messageBuilder.Append(Environment.NewLine + this.GetExceptionStackLog()); } return(messageBuilder.ToString()); }
/// <summary> /// Setup console logging for the tool /// </summary> public static void SetupConsoleLogger() { Logger.LogDecorations decorations = Logger.LogDecorations.None; // Normal log level for the tool, printing everything but debug messages. Logger.LogLevels levels = Logger.LogLevels.All & ~Logger.LogLevels.Debug; #if DEBUG decorations = Logger.LogDecorations.All; levels = Logger.LogLevels.All; #endif ConsoleLog consoleLog = new ConsoleLog { LogLevels = levels, LogDecorations = decorations }; AddProvider(consoleLog); }