public void LogicalContext_PushPopOnOneThread_ValueAccessible()
        {
            var tracing = new TraceStack();
            var pair    = new KeyValuePair <string, string>("TraceID", "1234");

            using (tracing.Push(pair))
            {
                var showMe = tracing.CurrentStack;
            }
        }
Esempio n. 2
0
            /// <summary>
            /// Releases unmanaged and - optionally - managed resources.
            /// </summary>
            /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param>
            private void Dispose(bool disposing)
            {
                if (_Disposed)
                {
                    return;
                }

                if (disposing)
                {
                    TraceStack.Pop();
                }

                _Disposed = true;
            }
Esempio n. 3
0
 public sealed override void OnEntry(MethodExecutionArgs args)
 {
     try
     {
         m_Caller = args.Method.Name;
         var log = GetLog(args.Instance, args.Arguments);
         if (log != null && log.IsTraceEnabled)
         {
             var execTag = new ExecutionTag
             {
                 Begin = s_StopWatch.Elapsed
             };
             args.MethodExecutionTag = execTag;
             log.Trace(LogFormatters.TraceEnter(m_Message), m_Caller);
             execTag.TraceStackHandle = TraceStack.Push(LogFormatters.ContextPart(m_Caller));
         }
     }
     catch (Exception ex)
     {
         var log = new Log <AutoTraceAttribute>();
         log.Error("Unexpected error. Please contact your Administrator", ex);
     }
 }
 /// <summary>
 /// Forces any left-behind calls to Start() to be closed.
 /// </summary>
 public static void ClearStack()
 {
     TraceStack.Clear();
 }
Esempio n. 5
0
 protected override CompilerMessage MakeMessage(int?messageCode, string context = default) => !messageCode.HasValue
     ? new CompilerMessage(null, null, context, TraceStack?.ToArray())
     : new CompilerMessage(messageCode.Value, CompilerMessage.GetMessageLevel(messageCode.Value), context, TraceStack?.ToArray());
Esempio n. 6
0
 public void PopTrace() => TraceStack.Pop();
Esempio n. 7
0
 public void PushTrace(TraceSite traceSite) => TraceStack.Push(traceSite);
Esempio n. 8
0
 /// <summary>
 /// Prevents a default instance of the <see cref="TraceBlock" /> class from being created.
 /// </summary>
 private TraceBlock()
 {
     TraceStack.Push(this);
 }