Mercurial > pub > ImplabNet
comparison Implab/Diagnostics/Trace.cs @ 281:e0916ddc9950 v3 tip
code cleanup and refactoring
| author | cin |
|---|---|
| date | Fri, 01 Jun 2018 21:35:24 +0300 |
| parents | f07be402ab02 |
| children |
comparison
equal
deleted
inserted
replaced
| 280:f07be402ab02 | 281:e0916ddc9950 |
|---|---|
| 1 using System; | 1 // enable System.Diagnostics trace methods |
| 2 #define TRACE | |
| 3 | |
| 4 using System; | |
| 2 using System.Collections.Generic; | 5 using System.Collections.Generic; |
| 3 using System.Diagnostics; | 6 using System.Diagnostics; |
| 4 using System.Linq; | 7 using System.Linq; |
| 5 using System.Text; | 8 using System.Text; |
| 6 using System.Threading; | 9 using System.Threading; |
| 7 using System.Threading.Tasks; | 10 using System.Threading.Tasks; |
| 8 | 11 |
| 9 namespace Implab.Diagnostics { | 12 namespace Implab.Diagnostics { |
| 10 public static class Trace<T> { | 13 public static class Trace<T> { |
| 11 | 14 |
| 12 public static TraceSource TraceSource { get; } = new TraceSource(typeof(T).Name); | 15 static Lazy<TraceSource> _traceSource = new Lazy<TraceSource>(CreateChannel, LazyThreadSafetyMode.ExecutionAndPublication); |
| 16 | |
| 17 static int _nextId; | |
| 18 | |
| 19 static TraceSource CreateChannel() { | |
| 20 var id = Interlocked.Increment(ref _nextId); | |
| 21 return new TraceSource(typeof(T).Name); | |
| 22 } | |
| 23 | |
| 24 public static TraceSource TraceSource { get { return _traceSource.Value; } } | |
| 25 | |
| 26 public static IDisposable Subscribe() { | |
| 27 | |
| 28 throw new NotImplementedException(); | |
| 29 } | |
| 13 | 30 |
| 14 #if NETFX_TRACE_BUG | 31 #if NETFX_TRACE_BUG |
| 15 readonly static AsyncLocal<object> m_currentOperation = new AsyncLocal<object>(); | 32 readonly static AsyncLocal<object> m_currentOperation = new AsyncLocal<object>(); |
| 16 #endif | 33 #endif |
| 17 | 34 |
