TraceFileLogger.cs 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. using MediaBrowser.Common.Kernel;
  2. using System;
  3. using System.ComponentModel.Composition;
  4. using System.Diagnostics;
  5. using System.IO;
  6. namespace MediaBrowser.Common.Logging
  7. {
  8. [Export(typeof(BaseLogger))]
  9. public class TraceFileLogger : BaseLogger
  10. {
  11. private TraceListener Listener { get; set; }
  12. public override void Initialize(IKernel kernel)
  13. {
  14. DateTime now = DateTime.Now;
  15. string logFilePath = Path.Combine(kernel.ApplicationPaths.LogDirectoryPath, "log-" + now.ToString("dMyyyy") + "-" + now.Ticks + ".log");
  16. Listener = new TextWriterTraceListener(logFilePath);
  17. Trace.Listeners.Add(Listener);
  18. Trace.AutoFlush = true;
  19. }
  20. public override void Dispose()
  21. {
  22. base.Dispose();
  23. Trace.Listeners.Remove(Listener);
  24. Listener.Dispose();
  25. }
  26. public override void LogEntry(LogRow row)
  27. {
  28. Trace.WriteLine(row.ToString());
  29. }
  30. }
  31. }