using System; using System.Collections.Generic; using System.Text; using log4net.Config; using log4net; using System.IO; using log4net.Util; using System.Reflection; using System.Collections; namespace AnywhereTS { public static class Logging { static Logging() { Logging.Initialize(); } private static void Initialize() { XmlConfigurator.Configure(new FileInfo("AnywhereTS.Logging.dll.config")); } #region Log access public static readonly ILog ATSAdminLog = LogManager.GetLogger("AnywhereTS.ATSAmdin"); public static readonly ILog TSControlPanelLog = LogManager.GetLogger("AnywhereTS.TSControlPanel"); #endregion #region log4net help public static List GetMessagesFromThreadContextStack(string RawContextStack) { try { ThreadContextStack tc = ThreadContext.Stacks[RawContextStack.ToUpper()]; if (tc == null) { return new List(); } else { return GetMessagesFromThreadContextStack(tc); } } catch { return new List(); } } public static List GetMessagesFromThreadContextStack(ThreadContextStack rawTCS) { ThreadContextStack oldrawTCS = rawTCS; List stack_objects = new List(); ThreadContextStack context = (rawTCS as ThreadContextStack); for (int i = 0; i < context.Count; i++) { Type t = typeof(ThreadContextStack); MethodInfo mi = t.GetMethod("GetFullMessage", BindingFlags.NonPublic | BindingFlags.Instance); string message = mi.Invoke(context, null).ToString(); stack_objects.Add(message); context.Pop(); } rawTCS = oldrawTCS; return stack_objects; } #endregion } }