using System; using System.Diagnostics; using System.Globalization; using System.IO; namespace MAX.Core.Logger; /// /// Implementation of that logs into a . /// public class ConsoleLogger : ILoggerFacade { private readonly bool _debug; private readonly bool _console; public bool IsDebugEnabled => true; /// /// Initializes a new instance of that writes to /// the console output. /// public ConsoleLogger(bool debug = true, bool console = true) { _debug = debug; _console = console; } ///// ///// Disposes the associated . ///// ///// When , disposes the associated . //protected virtual void Dispose(bool disposing) //{ // if (disposing) // { // writer?.Dispose(); // } //} /// ///Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources. /// /// Calls . ///2 public void Dispose() { GC.SuppressFinalize(this); } public void Debug(Exception ex, string message) { Log(message, LogLevel.Debug); } public void Debug(string message) { Log(message, LogLevel.Debug); } public void Info(Exception ex, string message) { Log(message, LogLevel.Info); } public void Info(string message) { Log(message, LogLevel.Info); } public void Warn(Exception ex, string message) { Log(message, LogLevel.Warn); } public void Warn(string message) { Log(message, LogLevel.Warn); } public void Error(Exception ex, string message) { Log(message, LogLevel.Error); } public void Error(string message) { Log(message, LogLevel.Error); } public void Fatal(Exception ex, string message) { Log(message, LogLevel.Fatal); } public void Fatal(string message) { Log(message, LogLevel.Fatal); } public void Error(Exception ex) { Log(ex.Message, LogLevel.Error); } public void Log(string message, LogLevel level) { string messageToLog = string.Format(CultureInfo.InvariantCulture, "{1}: {2}. Timestamp:{0:u}.", DateTime.Now, level.ToString().ToUpper(CultureInfo.InvariantCulture), message); //Trace.WriteLine(messageToLog); if (_debug) { System.Diagnostics.Debug.WriteLine(messageToLog); } if (_console) { Console.WriteLine(messageToLog); } } }