BaseLogger.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. using System;
  2. using System.Text;
  3. using System.Threading;
  4. namespace MediaBrowser.Logging
  5. {
  6. public abstract class BaseLogger : IDisposable
  7. {
  8. public LogSeverity LogSeverity { get; set; }
  9. public void LogInfo(string message, params object[] paramList)
  10. {
  11. LogEntry(message, LogSeverity.Info, paramList);
  12. }
  13. public void LogDebugInfo(string message, params object[] paramList)
  14. {
  15. LogEntry(message, LogSeverity.Debug, paramList);
  16. }
  17. public void LogError(string message, params object[] paramList)
  18. {
  19. LogEntry(message, LogSeverity.Error, paramList);
  20. }
  21. public void LogException(string message, Exception exception, params object[] paramList)
  22. {
  23. StringBuilder builder = new StringBuilder();
  24. if (exception != null)
  25. {
  26. builder.AppendFormat("Exception. Type={0} Msg={1} StackTrace={3}{2}",
  27. exception.GetType().FullName,
  28. exception.Message,
  29. exception.StackTrace,
  30. Environment.NewLine);
  31. }
  32. message = string.Format(message, paramList);
  33. LogError(string.Format("{0} ( {1} )", message, builder));
  34. }
  35. public void LogWarning(string message, params object[] paramList)
  36. {
  37. LogEntry(message, LogSeverity.Warning, paramList);
  38. }
  39. private void LogEntry(string message, LogSeverity severity, params object[] paramList)
  40. {
  41. if (severity < LogSeverity) return;
  42. message = string.Format(message, paramList);
  43. Thread currentThread = Thread.CurrentThread;
  44. LogRow row = new LogRow()
  45. {
  46. Severity = severity,
  47. Message = message,
  48. Category = string.Empty,
  49. ThreadId = currentThread.ManagedThreadId,
  50. //ThreadName = currentThread.Name,
  51. Time = DateTime.Now
  52. };
  53. LogEntry(row);
  54. }
  55. public virtual void Dispose()
  56. {
  57. }
  58. protected abstract void LogEntry(LogRow row);
  59. }
  60. }