/// <summary> /// Creates a read-only wrapper for a <c>AppenderCollection</c> instance. /// </summary> /// <param name="list">list to create a readonly wrapper arround</param> /// <returns> /// An <c>AppenderCollection</c> wrapper that is read-only. /// </returns> public static AppenderCollection ReadOnly(AppenderCollection list) { if (list == null) throw new ArgumentNullException("list"); return new ReadOnlyAppenderCollection(list); }
/// <summary> /// Creates a synchronized (thread-safe) wrapper for a /// <c>AppenderCollection</c> instance. /// </summary> /// <returns> /// An <c>AppenderCollection</c> wrapper that is synchronized (thread-safe). /// </returns> public static AppenderCollection Synchronized(AppenderCollection list) { if (list == null) { throw new ArgumentNullException("list"); } return(new SyncAppenderCollection(list)); }
/// <summary> /// Creates a read-only wrapper for a <c>AppenderCollection</c> instance. /// </summary> /// <param name="list">list to create a readonly wrapper arround</param> /// <returns> /// An <c>AppenderCollection</c> wrapper that is read-only. /// </returns> public static AppenderCollection ReadOnly(AppenderCollection list) { if (list == null) { throw new ArgumentNullException("list"); } return(new ReadOnlyAppenderCollection(list)); }
public virtual object Clone() { AppenderCollection appenders = new AppenderCollection(this.m_count); Array.Copy(this.m_array, 0, appenders.m_array, 0, this.m_count); appenders.m_count = this.m_count; appenders.m_version = this.m_version; return(appenders); }
/// <summary> /// Creates a shallow copy of the <see cref="T:log4net.Appender.AppenderCollection" />. /// </summary> /// <returns>A new <see cref="T:log4net.Appender.AppenderCollection" /> with a shallow copy of the collection data.</returns> public virtual object Clone() { AppenderCollection appenderCollection = new AppenderCollection(m_count); Array.Copy(m_array, 0, appenderCollection.m_array, 0, m_count); appenderCollection.m_count = m_count; appenderCollection.m_version = m_version; return(appenderCollection); }
/// <summary> /// Creates a shallow copy of the <see cref="AppenderCollection"/>. /// </summary> /// <returns>A new <see cref="AppenderCollection"/> with a shallow copy of the collection data.</returns> public virtual object Clone() { AppenderCollection newCol = new AppenderCollection(m_count); Array.Copy(m_array, 0, newCol.m_array, 0, m_count); newCol.m_count = m_count; newCol.m_version = m_version; return(newCol); }
/// <summary> /// Adds the elements of another <c>AppenderCollection</c> to the current <c>AppenderCollection</c>. /// </summary> /// <param name="x">The <c>AppenderCollection</c> whose elements should be added to the end of the current <c>AppenderCollection</c>.</param> /// <returns>The new <see cref="P:log4net.Appender.AppenderCollection.Count" /> of the <c>AppenderCollection</c>.</returns> public virtual int AddRange(AppenderCollection x) { if (m_count + x.Count >= m_array.Length) { EnsureCapacity(m_count + x.Count); } Array.Copy(x.m_array, 0, m_array, m_count, x.Count); m_count += x.Count; m_version++; return(m_count); }
public virtual int AddRange(AppenderCollection x) { if ((this.m_count + x.Count) >= this.m_array.Length) { this.EnsureCapacity(this.m_count + x.Count); } Array.Copy(x.m_array, 0, this.m_array, this.m_count, x.Count); this.m_count += x.Count; this.m_version++; return(this.m_count); }
public void ToArrayTest() { AppenderCollection appenderCollection = new AppenderCollection(); IAppender appender = new MemoryAppender(); appenderCollection.Add(appender); IAppender[] appenderArray = appenderCollection.ToArray(); Assert.AreEqual(1, appenderArray.Length); Assert.AreEqual(appender, appenderArray[0]); }
public void ReadOnlyToArrayTest() { AppenderCollection appenderCollection = new AppenderCollection(); IAppender appender = new MemoryAppender(); appenderCollection.Add(appender); AppenderCollection readonlyAppenderCollection = AppenderCollection.ReadOnly(appenderCollection); IAppender[] appenderArray = readonlyAppenderCollection.ToArray(); Assert.AreEqual(1, appenderArray.Length); Assert.AreEqual(appender, appenderArray[0]); }
private void ChangeLog4netLogFileName(log4net.ILog iLog, string fileName) { log4net.Core.LogImpl logImpl = iLog as log4net.Core.LogImpl; if (logImpl != null) { log4net.Appender.AppenderCollection ac = ((log4net.Repository.Hierarchy.Logger)logImpl.Logger).Appenders; for (int i = 0; i < ac.Count; i++) { // 这里我只对RollingFileAppender类型做修改 log4net.Appender.RollingFileAppender rfa = ac[i] as log4net.Appender.RollingFileAppender; if (rfa != null) { rfa.File = fileName; if (!System.IO.File.Exists(fileName)) { System.IO.File.Create(fileName); } // 更新Writer属性 rfa.Writer = new System.IO.StreamWriter(rfa.File, rfa.AppendToFile, rfa.Encoding); } } } }
/// <summary> /// Creates a shallow copy of the <see cref="AppenderCollection"/>. /// </summary> /// <returns>A new <see cref="AppenderCollection"/> with a shallow copy of the collection data.</returns> public virtual object Clone() { AppenderCollection newCol = new AppenderCollection(m_count); Array.Copy(m_array, 0, newCol.m_array, 0, m_count); newCol.m_count = m_count; newCol.m_version = m_version; return newCol; }
/// <summary> /// Initializes a new instance of the <c>AppenderCollection</c> class /// that contains elements copied from the specified <c>AppenderCollection</c>. /// </summary> /// <param name="c">The <c>AppenderCollection</c> whose elements are copied to the new collection.</param> public AppenderCollection(AppenderCollection c) { m_array = new IAppender[c.Count]; AddRange(c); }
/// <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) { // Null values for newAppender parameter are strictly forbidden. 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); } }
public override int AddRange(AppenderCollection x) { throw new NotSupportedException("This is a Read Only Collection and can not be modified"); }
internal ReadOnlyAppenderCollection(AppenderCollection list) : base(Tag.Default) { m_collection = list; }
/// <summary> /// Initializes a new instance of the <c>Enumerator</c> class. /// </summary> /// <param name="tc"></param> internal Enumerator(AppenderCollection tc) { m_collection = tc; m_index = -1; m_version = tc.m_version; }
public override int AddRange(AppenderCollection x) { lock(this.m_root) return m_collection.AddRange(x); }
/// <summary> /// Creates a synchronized (thread-safe) wrapper for a /// <c>AppenderCollection</c> instance. /// </summary> /// <returns> /// An <c>AppenderCollection</c> wrapper that is synchronized (thread-safe). /// </returns> public static AppenderCollection Synchronized(AppenderCollection list) { if(list==null) throw new ArgumentNullException("list"); return new SyncAppenderCollection(list); }
/// <summary> /// Adds the elements of another <c>AppenderCollection</c> to the current <c>AppenderCollection</c>. /// </summary> /// <param name="x">The <c>AppenderCollection</c> whose elements should be added to the end of the current <c>AppenderCollection</c>.</param> /// <returns>The new <see cref="AppenderCollection.Count"/> of the <c>AppenderCollection</c>.</returns> public virtual int AddRange(AppenderCollection x) { if (m_count + x.Count >= m_array.Length) { EnsureCapacity(m_count + x.Count); } Array.Copy(x.m_array, 0, m_array, m_count, x.Count); m_count += x.Count; m_version++; return m_count; }
internal SyncAppenderCollection(AppenderCollection list) : base(Tag.Default) { m_root = list.SyncRoot; m_collection = list; }
public override int AddRange(AppenderCollection x) { lock (this.m_root) return(m_collection.AddRange(x)); }