ConsoleLog.cs 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. using System;
  2. using Quadarax.Foundation.Core.Console;
  3. namespace Quadarax.Foundation.Core.Logging
  4. {
  5. public class ConsoleLog : ILog
  6. {
  7. private string _typeName;
  8. private ConsoleWriter _infoWriter = new ConsoleWriter(ConsoleColor.White);
  9. private ConsoleWriter _debugWriter = new ConsoleWriter(ConsoleColor.Green);
  10. private ConsoleWriter _warnWriter = new ConsoleWriter(ConsoleColor.Yellow);
  11. private ConsoleWriter _errorWriter = new ConsoleWriter(ConsoleColor.Red);
  12. private ConsoleWriter _traceWriter = new ConsoleWriter(ConsoleColor.DarkGray);
  13. public ConsoleLog(Type owningType)
  14. {
  15. _typeName = owningType.Name;
  16. }
  17. public ConsoleLog(string owningTypeName)
  18. {
  19. _typeName = owningTypeName;
  20. }
  21. public void Log(LogSeverityEnum severity, int code, string message)
  22. {
  23. Log(severity, $"Code:{code}, {message}");
  24. }
  25. public void Log(LogSeverityEnum severity, string message)
  26. {
  27. var now = DateTime.Now;
  28. var thNum = System.Threading.Thread.CurrentThread.ManagedThreadId;
  29. var final = $"[{severity}:{now.ToLongTimeString()}:{thNum}]#{_typeName}: {message}";
  30. switch (severity)
  31. {
  32. case LogSeverityEnum.Info:
  33. _infoWriter.WriteLine(final);
  34. break;
  35. case LogSeverityEnum.Debug:
  36. _debugWriter.WriteLine(final);
  37. break;
  38. case LogSeverityEnum.Warn:
  39. _warnWriter.WriteLine(final);
  40. break;
  41. case LogSeverityEnum.Fatal:
  42. case LogSeverityEnum.Error:
  43. _errorWriter.WriteLine(final);
  44. break;
  45. }
  46. }
  47. public void Log(LogSeverityEnum severity, string message, Exception? exception)
  48. {
  49. Log(severity, $"{message}\n{exception}");
  50. }
  51. public void Log(LogSeverityEnum severity, int code, string message, Exception? exception)
  52. {
  53. Log(severity, string.Format("{2} - {0}\n{1}", message,exception, code));
  54. }
  55. }
  56. }