aboutsummaryrefslogtreecommitdiff
path: root/MediaBrowser.Common/Logging/LogRow.cs
blob: fda7142632eb89d4d08d2eb0a333d423610f24b4 (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
39
40
using System;
using System.Text;

namespace MediaBrowser.Common.Logging
{
    public struct LogRow
    {
        const string TimePattern = "h:mm:ss.fff tt d/M/yyyy";
        
        public LogSeverity Severity { get; set; }
        public string Message { get; set; }
        public string Category { get; set; }
        public int ThreadId { get; set; }
        public string ThreadName { get; set; }
        public DateTime Time { get; set; }

        public override string ToString()
        {
            StringBuilder builder = new StringBuilder();
            builder.Append(Time.ToString(TimePattern))
                .Append(" , ")
                .Append(Enum.GetName(typeof(LogSeverity), Severity))
                .Append(" , ")
                .Append(Encode(Message))
                .Append(" , ")
                .Append(Encode(Category))
                .Append(" , ")
                .Append(ThreadId)
                .Append(" , ")
                .Append(Encode(ThreadName));

            return builder.ToString();
        }

        private string Encode(string str)
        {
            return (str ?? "").Replace(",", ",,").Replace(Environment.NewLine, " [n] ");
        }
    }
}