ConsoleLog.cs 2.2 KB

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