Mercurial > pub > ImplabNet
annotate Implab/Diagnostics/ConsoleTraceListener.cs @ 108:f3bdb7ba59b9 v2
sync
author | cin |
---|---|
date | Tue, 11 Nov 2014 18:37:35 +0300 |
parents | 4c0e5ef99986 |
children | 1b7ebcc52e5a |
rev | line source |
---|---|
36 | 1 using System; |
2 using System.Collections.Generic; | |
3 using System.Linq; | |
4 using System.Text; | |
5 | |
6 namespace Implab.Diagnostics { | |
40 | 7 public class ConsoleTraceListener: TextListenerBase { |
36 | 8 |
9 static readonly object _consoleLock = new object(); | |
10 | |
43
7c2369f580b8
improved tracing, TextListenerBase can be bound to logical operation scope.
cin
parents:
40
diff
changeset
|
11 public ConsoleTraceListener() |
7c2369f580b8
improved tracing, TextListenerBase can be bound to logical operation scope.
cin
parents:
40
diff
changeset
|
12 : base(true) { |
7c2369f580b8
improved tracing, TextListenerBase can be bound to logical operation scope.
cin
parents:
40
diff
changeset
|
13 |
7c2369f580b8
improved tracing, TextListenerBase can be bound to logical operation scope.
cin
parents:
40
diff
changeset
|
14 } |
7c2369f580b8
improved tracing, TextListenerBase can be bound to logical operation scope.
cin
parents:
40
diff
changeset
|
15 |
48 | 16 public ConsoleTraceListener(bool global) |
17 : base(global) { | |
43
7c2369f580b8
improved tracing, TextListenerBase can be bound to logical operation scope.
cin
parents:
40
diff
changeset
|
18 |
7c2369f580b8
improved tracing, TextListenerBase can be bound to logical operation scope.
cin
parents:
40
diff
changeset
|
19 } |
7c2369f580b8
improved tracing, TextListenerBase can be bound to logical operation scope.
cin
parents:
40
diff
changeset
|
20 |
92 | 21 protected override void WriteEntry(LogEventArgs args, EventText text, string channel) { |
40 | 22 var msg = new StringBuilder(); |
36 | 23 |
40 | 24 for (int i = 0; i < text.indent; i++) |
36 | 25 msg.Append(" "); |
92 | 26 msg.AppendFormat("[{0}]:{1}: {2}", args.ThreadId, channel, text.content); |
36 | 27 |
28 lock (_consoleLock) { | |
92 | 29 Console.ForegroundColor = (ConsoleColor)(args.ThreadId % 15 + 1); |
30 Console.WriteLine(msg); | |
36 | 31 } |
32 } | |
33 } | |
34 } |