public IContextStack this[string key] { get { log4net.Util.ThreadContextStack log4netStack = ThreadContext.Stacks[key]; // log4net never allows a null stack. return(new ThreadContextStack(log4netStack)); } }
public static void SetMaxDepth(int maxDepth) { if (maxDepth >= 0) { log4net.Util.ThreadContextStack stack = ThreadContext.Stacks["NDC"]; if (maxDepth == 0) { stack.Clear(); } else { while (stack.Count > maxDepth) { stack.Pop(); } } } }
/// <summary> /// Returns whether to include stack array or not /// Also outs the stack array if needed to include /// </summary> /// <param name="stack"></param> /// <param name="includeStackKey"></param> /// <returns></returns> private bool IncludeThreadStackValues(log4net.Util.ThreadContextStack stack, out string[] stackArray) { if (stack != null && stack.Count > 0) { stackArray = new string[stack.Count]; for (int n = stack.Count - 1; n >= 0; n--) { stackArray[n] = stack.Pop(); } foreach (string stackValue in stackArray) { stack.Push(stackValue); } return(true); } else { stackArray = null; return(false); } }
override protected void Convert(TextWriter writer, LoggingEvent loggingEvent) { string messageId = null; // pop the NDC log4net.Util.ThreadContextStack ndc = loggingEvent.LookupProperty("NDC") as log4net.Util.ThreadContextStack; if (ndc != null && ndc.Count > 0) { // the NDC represents a context stack, whose levels are separated by whitespace. we will use this as our MessageId. messageId = ndc.ToString(); } if (string.IsNullOrEmpty(messageId)) { messageId = "-"; // the NILVALUE } else { messageId = messageId.Replace(' ', '.'); // replace spaces with periods } writer.Write(PrintableAsciiSanitizer.Sanitize(messageId, 32)); }
public ThreadContextStack(log4net.Util.ThreadContextStack log4netStack) { }
public ThreadContextStack(log4net.Util.ThreadContextStack log4netStack) { this.log4netStack = log4netStack; }
public ThreadContextStack(log4net.Util.ThreadContextStack log4netStack) { this.log4netStack = log4netStack; }