Mercurial > pub > ImplabNet
diff Implab/Diagnostics/TextListenerBase.cs @ 92:4c0e5ef99986 v2
rewritten tracing
author | cin |
---|---|
date | Wed, 22 Oct 2014 18:37:56 +0400 |
parents | d9d794b61bb9 |
children |
line wrap: on
line diff
--- a/Implab/Diagnostics/TextListenerBase.cs Tue Oct 14 09:30:45 2014 +0400 +++ b/Implab/Diagnostics/TextListenerBase.cs Wed Oct 22 18:37:56 2014 +0400 @@ -13,7 +13,7 @@ protected TextListenerBase(bool global) { Register(this); if (!global) { - m_boundOperation = TraceContext.Current.CurrentOperation; + m_boundOperation = TraceContext.Instance.CurrentOperation; m_baseIndent = Math.Max(0, m_boundOperation.Level - 1); } } @@ -38,13 +38,12 @@ var formatter = GetService<IEventTextFormatter<TEvent>>(); var channelName = channel.Name; - EventHandler<ValueEventArgs<TEvent>> handler = (sender, args) => { - TraceContext context = (TraceContext)sender; - var text = formatter.Format(context, args.Value); + EventHandler<LogEventArgs<TEvent>> handler = (sender, args) => { + var text = formatter.Format(args, args.Value); text.indent -= m_baseIndent; - if (IsRelated(context.CurrentOperation)) - WriteEntry(context, text, channelName); + if (IsRelated(args.Operation)) + WriteEntry(args, text, channelName); }; if (m_subscriptions.ContainsKey(channel)) @@ -97,19 +96,19 @@ /// Данный метод может вызваться из разных потоков одновременно. Возможна ситуация, когда /// данный метод вызывается уже после освобождения ообъекта методом <see cref="Dispose()"/>. /// </remarks> - /// <param name="context">Контекст трассировки.</param> /// <param name="text">Текст сообщения.</param> - protected abstract void WriteEntry(TraceContext context, EventText text, string channel); + /// <param name = "channel"></param> + protected abstract void WriteEntry(LogEventArgs args, EventText text, string channel); - public EventText Format(TraceContext context, object data) { + public EventText Format(LogEventArgs args, object data) { return new EventText { - indent = context.CurrentOperation.Level, + indent = args.Operation.Level, content = data.ToString() }; } - public EventText Format(TraceContext context, TraceEvent data) { - var level = context.CurrentOperation.Level; + public EventText Format(LogEventArgs args, TraceEvent data) { + var level = args.Operation.Level; if (data.EventType == TraceEventType.OperationCompleted || data.EventType == TraceEventType.OperationStarted) level--;