aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common/Logging/TraceFileLogger.cs
blob: 7ab67a137e7ed2ec353f61aead90b9b55ecb8c3a (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
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());
        }
    }
}