LogRow.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using System;
  2. using System.Text;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. namespace MediaBrowser.Common.Logging
  6. {
  7. public struct LogRow
  8. {
  9. const string TimePattern = "h:mm:ss.fff tt d/M/yyyy";
  10. public LogSeverity Severity { get; set; }
  11. public string Message { get; set; }
  12. public int ThreadId { get; set; }
  13. public string ThreadName { get; set; }
  14. public DateTime Time { get; set; }
  15. public override string ToString()
  16. {
  17. List<string> data = new List<string>();
  18. data.Add(Time.ToString(TimePattern));
  19. data.Add(Severity.ToString());
  20. if (!string.IsNullOrEmpty(Message))
  21. {
  22. data.Add(Encode(Message));
  23. }
  24. data.Add(ThreadId.ToString());
  25. if (!string.IsNullOrEmpty(ThreadName))
  26. {
  27. data.Add(Encode(ThreadName));
  28. }
  29. return string.Join(" , ", data.ToArray());
  30. }
  31. private string Encode(string str)
  32. {
  33. return (str ?? "").Replace(",", ",,").Replace(Environment.NewLine, " [n] ");
  34. }
  35. }
  36. }