pszczyg

DecoratorLogger_1

Jul 28th, 2021
691
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. public class MemoryLogger
  2.     {
  3.         public List<LogLine> Log { get; }
  4.  
  5.         public MemoryLogger()
  6.         {
  7.             Log = new List<LogLine>();
  8.         }
  9.         public void Exception(string message, Exception ex)
  10.         {
  11.             Log.Add(new LogLine(LogLine.SeverityLevels.Error, message, ex));
  12.         }
  13.  
  14.         public void Info(string message)
  15.         {
  16.             Log.Add(new LogLine(LogLine.SeverityLevels.Info, message));
  17.         }
  18.  
  19.         public void Warning(string message)
  20.         {
  21.             Log.Add(new LogLine(LogLine.SeverityLevels.Warn, message));
  22.         }
  23.        
  24.         public override string ToString()
  25.         {
  26.             var sb = new StringBuilder();
  27.             foreach (var logLine in Log)
  28.                 sb.AppendLine(logLine.ToString());
  29.             return sb.ToString();
  30.         }
  31.     }
  32.  
  33.     public class LogLine
  34.     {
  35.         public SeverityLevels Severity { get; }
  36.         public string Message { get; }
  37.         public Exception Exception { get; }
  38.  
  39.         public enum SeverityLevels
  40.         {
  41.             Debug, Info, Warn, Error
  42.         }
  43.         public LogLine(SeverityLevels severity, string message, Exception exception = null)
  44.         {
  45.             Severity = severity;
  46.             Message = message;
  47.             Exception = exception;
  48.         }
  49.  
  50.         public override string ToString()
  51.         {
  52.             return $"{Severity}: {Message} {Exception?.Message}";
  53.         }
  54.     }
RAW Paste Data