static LogService() { // s_DTName2Repository = new Dictionary<string, ILoggerRepository>(); s_DTName2Log = new Dictionary <string, Logger>(); string fileName = "log4net.config"; fileName = Path.Combine(Environment.CurrentDirectory, fileName); if (!File.Exists(fileName)) { File.WriteAllText(fileName, Properties.Resources.log4net, Encoding.UTF8); } FileInfo fi = new FileInfo(fileName); log4net.Config.XmlConfigurator.Configure(fi); // s_Log = log4net.LogManager.GetLogger("AppLogger"); //"DebuggingLog"); s_Log = log4net.LogManager.GetLogger("template"); if (s_Appenders == null) { AppenderCollection ac = (s_Log.Logger as log4net.Repository.Hierarchy.Logger).Appenders; if (ac != null && ac.Count > 0) { s_Appenders = new RollingFileAppender[ac.Count]; for (int i = 0; i < ac.Count; i++) { s_Appenders[i] = ac[i] as RollingFileAppender; } } } }
public void RemoveAllAppenders() { if (this.m_appenderList != null) { AppenderCollection.IAppenderCollectionEnumerator enumerator = this.m_appenderList.GetEnumerator(); try { while (enumerator.MoveNext()) { IAppender current = enumerator.Current; try { current.Close(); } catch (Exception exception) { LogLog.Error(declaringType, "Failed to Close appender [" + current.Name + "]", exception); } } } finally { IDisposable disposable = enumerator as IDisposable; if (disposable != null) { disposable.Dispose(); } } this.m_appenderList = null; this.m_appenderArray = null; } }
/// <summary> /// 获取Logger appender配置信息 /// </summary> /// <param name="log">ILog</param> public static IAppender[] GetLoggerAppenders(ILog log) { AppenderCollection appenderCollection = ((log4net.Repository.Hierarchy.Logger)((log4net.Core.LoggerWrapperImpl)log).Logger).Appenders; IAppender[] appenders = (IAppender[])appenderCollection.SyncRoot; //string file = ((FileAppender)appenders[0]).File; return(appenders); }
public void ToArrayTest() { AppenderCollection appenderCollection = new AppenderCollection(); IAppender appender = new AppenderMemory(); appenderCollection.Add(appender); IAppender[] appenderArray = appenderCollection.ToArray(); Assert.AreEqual(1, appenderArray.Length); Assert.AreEqual(appender, appenderArray[0]); }
public IAppender RemoveAppender(IAppender appender) { if ((appender != null) && (this.m_appenderList != null)) { this.m_appenderList.Remove(appender); if (this.m_appenderList.Count == 0) { this.m_appenderList = null; } this.m_appenderArray = null; } return(appender); }
public void ReadOnlyToArrayTest() { AppenderCollection appenderCollection = new AppenderCollection(); IAppender appender = new AppenderMemory(); appenderCollection.Add(appender); AppenderCollection readonlyAppenderCollection = AppenderCollection.ReadOnly(appenderCollection); IAppender[] appenderArray = readonlyAppenderCollection.ToArray(); Assert.AreEqual(1, appenderArray.Length); Assert.AreEqual(appender, appenderArray[0]); }
/// <summary> /// Removes the specified appender from the list of attached appenders. /// </summary> /// <param name="appender">The appender to remove.</param> /// <returns>The appender removed from the list</returns> /// <remarks> /// <para> /// The appender removed is not closed. /// If you are discarding the appender you must call /// <see cref="M:log4net.Appender.IAppender.Close" /> on the appender removed. /// </para> /// </remarks> public IAppender RemoveAppender(IAppender appender) { if (appender != null && m_appenderList != null) { m_appenderList.Remove(appender); if (m_appenderList.Count == 0) { m_appenderList = null; } m_appenderArray = null; } return(appender); }
public log4net.Appender.IAppender GetLogAppender(string AppenderName) { AppenderCollection ac = ((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Root.Appenders; foreach (log4net.Appender.IAppender appender in ac) { if (appender.Name == AppenderName) { return(appender); } } return(null); }
/// <summary> /// Attaches an appender. /// </summary> /// <param name="newAppender">The appender to add.</param> /// <remarks> /// <para> /// If the appender is already in the list it won't be added again. /// </para> /// </remarks> public void AddAppender(IAppender newAppender) { if (newAppender == null) { throw new ArgumentNullException("newAppender"); } m_appenderArray = null; if (m_appenderList == null) { m_appenderList = new AppenderCollection(1); } if (!m_appenderList.Contains(newAppender)) { m_appenderList.Add(newAppender); } }
/// <summary> /// Attaches an appender. /// </summary> /// <param name="newAppender">The appender to add.</param> /// <remarks> /// If the appender is already in the list it won't be added again. /// </remarks> public void AddAppender(IAppender newAppender) { // Null values for newAppender parameter are strictly forbidden. if (newAppender == null) { throw new ArgumentNullException("newAppender"); } if (m_appenderList == null) { m_appenderList = new AppenderCollection(1); } if (!m_appenderList.Contains(newAppender)) { m_appenderList.Add(newAppender); } }
public void Close() { SetLevel("OFF"); log4net.Core.IAppenderAttachable closingAppenders = (log4net.Core.IAppenderAttachable)log.Logger; AppenderCollection collection = closingAppenders.Appenders; for (int i = 0; i < collection.Count; i++) { if (collection[i] is BufferingForwardingAppender) { //This FLUSH and close the current appenders along with all of its children appenders ((BufferingForwardingAppender)collection[i]).Close(); } } this.RemoveAllAppender(log); }
/// <summary> /// Closes all attached appenders implementing the <see cref="IAppenderAttachable"/> interface. /// </summary> /// <remarks> /// <para> /// Used to ensure that the appenders are correctly shutdown. /// </para> /// </remarks> virtual public void CloseNestedAppenders() { m_appenderLock.AcquireWriterLock(); try { if (m_appenderAttachedImpl != null) { AppenderCollection appenders = m_appenderAttachedImpl.Appenders; foreach (IAppender appender in appenders) { if (appender is IAppenderAttachable) { appender.Close(); } } } } finally { m_appenderLock.ReleaseWriterLock(); } }
public void Close() { try { log4net.Core.IAppenderAttachable closingAppenders = (log4net.Core.IAppenderAttachable)_log.Logger; AppenderCollection collection = closingAppenders.Appenders; for (int i = 0; i < collection.Count; i++) { if (collection[i] is BufferingForwardingAppender) { //This FLUSH and close the current appenders along with all of its children appenders ((BufferingForwardingAppender)collection[i]).Close(); } } this.RemoveAllAppender(); } catch (Exception ex) { AppUtil.LogEvent(ex.ToString(), System.Diagnostics.EventLogEntryType.Error); } }
/// <summary> /// Stop the cache logging functionality. /// </summary> public static void Close(string cacheName) { lock (lockObj) { if (cacheName != null) { if (cacheName.Length != 0) { string temploggerName = LoggingInformation.GetLoggerName(cacheName); //called at remove cache if (temploggerName != null) { SetLevel(temploggerName, "OFF"); if (temploggerName != null) { log4net.ILog log = log4net.LogManager.GetLogger(temploggerName); log4net.Core.IAppenderAttachable closingAppenders = (log4net.Core.IAppenderAttachable)log.Logger; AppenderCollection collection = closingAppenders.Appenders; for (int i = 0; i < collection.Count; i++) { if (collection[i] is BufferingForwardingAppender) { //This FLUSH and close the current appenders along with all of its children appenders ((BufferingForwardingAppender)collection[i]).Close(); } } RemoveAllAppender(temploggerName); LoggingInformation.cacheLogger.Remove(cacheName); } } } } } }
static IAppender GetAppender(string name) { AppenderCollection ac = GetRoot().Root.Appenders; return(ac.Cast <IAppender>().FirstOrDefault(appender => appender.Name == name)); }
internal Enumerator(AppenderCollection tc) { this.m_collection = tc; this.m_index = -1; this.m_version = tc.m_version; }
internal ReadOnlyAppenderCollection(AppenderCollection list) : base(AppenderCollection.Tag.Default) { this.m_collection = list; }
public override int AddRange(AppenderCollection x) { throw new NotSupportedException("This is a Read Only Collection and can not be modified"); }