aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common/Logging/TraceFileLogger.cs
diff options
context:
space:
mode:
Diffstat (limited to 'MediaBrowser.Common/Logging/TraceFileLogger.cs')
-rw-r--r--MediaBrowser.Common/Logging/TraceFileLogger.cs38
1 files changed, 38 insertions, 0 deletions
diff --git a/MediaBrowser.Common/Logging/TraceFileLogger.cs b/MediaBrowser.Common/Logging/TraceFileLogger.cs
new file mode 100644
index 000000000..7ab67a137
--- /dev/null
+++ b/MediaBrowser.Common/Logging/TraceFileLogger.cs
@@ -0,0 +1,38 @@
+using MediaBrowser.Common.Kernel;
+using System;
+using System.ComponentModel.Composition;
+using System.Diagnostics;
+using System.IO;
+
+namespace MediaBrowser.Common.Logging
+{
+ [Export(typeof(BaseLogger))]
+ public class TraceFileLogger : BaseLogger
+ {
+ private TraceListener Listener { get; set; }
+
+ public override void Initialize(IKernel kernel)
+ {
+ DateTime now = DateTime.Now;
+
+ string logFilePath = Path.Combine(kernel.ApplicationPaths.LogDirectoryPath, "log-" + now.ToString("dMyyyy") + "-" + now.Ticks + ".log");
+
+ Listener = new TextWriterTraceListener(logFilePath);
+ Trace.Listeners.Add(Listener);
+ Trace.AutoFlush = true;
+ }
+
+ public override void Dispose()
+ {
+ base.Dispose();
+
+ Trace.Listeners.Remove(Listener);
+ Listener.Dispose();
+ }
+
+ public override void LogEntry(LogRow row)
+ {
+ Trace.WriteLine(row.ToString());
+ }
+ }
+}