/// <summary> /// Add an appender X, Y, remove X and check if Y is the only /// remaining appender. /// </summary> [Test] public void TestAppender2() { CountingAppender a1 = new CountingAppender(); a1.Name = "testAppender2.1"; CountingAppender a2 = new CountingAppender(); a2.Name = "testAppender2.2"; log = LogManager.GetLogger("test").Logger as Logger; log.AddAppender(a1); log.AddAppender(a2); CountingAppender aHat = (CountingAppender)log.GetAppender(a1.Name); Assertion.AssertEquals(a1, aHat); aHat = (CountingAppender)log.GetAppender(a2.Name); Assertion.AssertEquals(a2, aHat); log.RemoveAppender("testAppender2.1"); IEnumerator enumAppenders = log.Appenders.GetEnumerator(); Assertion.Assert(enumAppenders.MoveNext()); aHat = (CountingAppender)enumAppenders.Current; Assertion.AssertEquals(a2, aHat); Assertion.Assert(!enumAppenders.MoveNext()); aHat = (CountingAppender)log.GetAppender(a2.Name); Assertion.AssertEquals(a2, aHat); }
public void TestAdditivity2() { Logger a = (Logger)Utils.GetLogger("a").Logger; Logger ab = (Logger)Utils.GetLogger("a.b").Logger; Logger abc = (Logger)Utils.GetLogger("a.b.c").Logger; Logger x = (Logger)Utils.GetLogger("x").Logger; CountingAppender ca1 = new CountingAppender(); CountingAppender ca2 = new CountingAppender(); a.AddAppender(ca1); abc.AddAppender(ca2); a.Repository.Configured = true; Assert.AreEqual(ca1.Counter, 0); Assert.AreEqual(ca2.Counter, 0); ab.Log(Level.Debug, MSG, null); Assert.AreEqual(ca1.Counter, 1); Assert.AreEqual(ca2.Counter, 0); abc.Log(Level.Debug, MSG, null); Assert.AreEqual(ca1.Counter, 2); Assert.AreEqual(ca2.Counter, 1); x.Log(Level.Debug, MSG, null); Assert.AreEqual(ca1.Counter, 2); Assert.AreEqual(ca2.Counter, 1); }
/// <summary> /// Test multiple additivity. /// </summary> [Test] public void TestAdditivity2() { Logger a = LogManager.GetLogger("a").Logger as Logger; Logger ab = LogManager.GetLogger("a.b").Logger as Logger; Logger abc = LogManager.GetLogger("a.b.c").Logger as Logger; Logger x = LogManager.GetLogger("x").Logger as Logger; CountingAppender ca1 = new CountingAppender(); CountingAppender ca2 = new CountingAppender(); a.AddAppender(ca1); abc.AddAppender(ca2); a.Repository.Configured = true; Assertion.AssertEquals(ca1.Counter, 0); Assertion.AssertEquals(ca2.Counter, 0); ab.Log(Level.DEBUG, MSG, null); Assertion.AssertEquals(ca1.Counter, 1); Assertion.AssertEquals(ca2.Counter, 0); abc.Log(Level.DEBUG, MSG, null); Assertion.AssertEquals(ca1.Counter, 2); Assertion.AssertEquals(ca2.Counter, 1); x.Log(Level.DEBUG, MSG, null); Assertion.AssertEquals(ca1.Counter, 2); Assertion.AssertEquals(ca2.Counter, 1); }
public void TestAppender2() { CountingAppender a1 = new CountingAppender(); a1.Name = "testAppender2.1"; CountingAppender a2 = new CountingAppender(); a2.Name = "testAppender2.2"; log = (Logger)Utils.GetLogger("test").Logger; log.AddAppender(a1); log.AddAppender(a2); CountingAppender aHat = (CountingAppender)log.GetAppender(a1.Name); Assert.AreEqual(a1, aHat); aHat = (CountingAppender)log.GetAppender(a2.Name); Assert.AreEqual(a2, aHat); log.RemoveAppender("testAppender2.1"); IEnumerator enumAppenders = ((IEnumerable)log.Appenders).GetEnumerator(); Assert.IsTrue(enumAppenders.MoveNext()); aHat = (CountingAppender)enumAppenders.Current; Assert.AreEqual(a2, aHat); Assert.IsTrue(!enumAppenders.MoveNext()); aHat = (CountingAppender)log.GetAppender(a2.Name); Assert.AreEqual(a2, aHat); }
public void TestAppender1() { log = (Logger)LogManager.GetLogger("test").Logger; CountingAppender a1 = new CountingAppender(); a1.Name = "testAppender1"; log.AddAppender(a1); IEnumerator enumAppenders = ((IEnumerable)log.Appenders).GetEnumerator(); Assert.IsTrue(enumAppenders.MoveNext()); CountingAppender aHat = (CountingAppender)enumAppenders.Current; Assert.AreEqual(a1, aHat); }
public void AddingMultipleAppenders2() { CountingAppender alpha = new CountingAppender(); CountingAppender beta = new CountingAppender(); BasicConfigurator.Configure(alpha, beta); ILog log = LogManager.GetLogger(GetType()); log.Debug("Hello World"); Assert.AreEqual(1, alpha.Counter); Assert.AreEqual(1, beta.Counter); }
/// <summary> /// Test if logger a.b inherits its appender from a. /// </summary> [Test] public void TestAdditivity1() { Logger a = LogManager.GetLogger("a").Logger as Logger; Logger ab = LogManager.GetLogger("a.b").Logger as Logger; CountingAppender ca = new CountingAppender(); a.AddAppender(ca); a.Repository.Configured = true; Assert.AreEqual(ca.Counter, 0); ab.Log(Level.Debug, MSG, null); Assert.AreEqual(ca.Counter, 1); ab.Log(Level.Info, MSG, null); Assert.AreEqual(ca.Counter, 2); ab.Log(Level.Warn, MSG, null); Assert.AreEqual(ca.Counter, 3); ab.Log(Level.Error, MSG, null); Assert.AreEqual(ca.Counter, 4); }
/// <summary> /// Test if logger a.b inherits its appender from a. /// </summary> [Test] public void TestAdditivity1() { Logger a = LogManager.GetLogger("a").Logger as Logger; Logger ab = LogManager.GetLogger("a.b").Logger as Logger; CountingAppender ca = new CountingAppender(); a.AddAppender(ca); a.Repository.Configured = true; Assertion.AssertEquals(ca.Counter, 0); ab.Log(Level.DEBUG, MSG, null); Assertion.AssertEquals(ca.Counter, 1); ab.Log(Level.INFO, MSG, null); Assertion.AssertEquals(ca.Counter, 2); ab.Log(Level.WARN, MSG, null); Assertion.AssertEquals(ca.Counter, 3); ab.Log(Level.ERROR, MSG, null); Assertion.AssertEquals(ca.Counter, 4); }
/// <summary> /// Add an appender and see if it can be retrieved. /// </summary> [Test] public void TestAppender1() { log = LogManager.GetLogger("test").Logger as Logger; CountingAppender a1 = new CountingAppender(); a1.Name = "testAppender1"; log.AddAppender(a1); IEnumerator enumAppenders = log.Appenders.GetEnumerator(); Assertion.Assert(enumAppenders.MoveNext()); CountingAppender aHat = (CountingAppender)enumAppenders.Current; Assertion.AssertEquals(a1, aHat); }
public void TestDisable1() { CountingAppender caRoot = new CountingAppender(); Logger root = ((Repository.Hierarchy.Hierarchy)Utils.GetRepository()).Root; root.AddAppender(caRoot); Repository.Hierarchy.Hierarchy h = ((Repository.Hierarchy.Hierarchy)Utils.GetRepository()); h.Threshold = Level.Info; h.Configured = true; Assert.AreEqual(caRoot.Counter, 0); root.Log(Level.Debug, MSG, null); Assert.AreEqual(caRoot.Counter, 0); root.Log(Level.Info, MSG, null); Assert.AreEqual(caRoot.Counter, 1); root.Log(Level.Warn, MSG, null); Assert.AreEqual(caRoot.Counter, 2); root.Log(Level.Warn, MSG, null); Assert.AreEqual(caRoot.Counter, 3); h.Threshold = Level.Warn; root.Log(Level.Debug, MSG, null); Assert.AreEqual(caRoot.Counter, 3); root.Log(Level.Info, MSG, null); Assert.AreEqual(caRoot.Counter, 3); root.Log(Level.Warn, MSG, null); Assert.AreEqual(caRoot.Counter, 4); root.Log(Level.Error, MSG, null); Assert.AreEqual(caRoot.Counter, 5); root.Log(Level.Error, MSG, null); Assert.AreEqual(caRoot.Counter, 6); h.Threshold = Level.Off; root.Log(Level.Debug, MSG, null); Assert.AreEqual(caRoot.Counter, 6); root.Log(Level.Info, MSG, null); Assert.AreEqual(caRoot.Counter, 6); root.Log(Level.Warn, MSG, null); Assert.AreEqual(caRoot.Counter, 6); root.Log(Level.Error, MSG, null); Assert.AreEqual(caRoot.Counter, 6); root.Log(Level.Fatal, MSG, null); Assert.AreEqual(caRoot.Counter, 6); root.Log(Level.Fatal, MSG, null); Assert.AreEqual(caRoot.Counter, 6); }
public void SetupRepository() { m_hierarchy = new Repository.Hierarchy.Hierarchy(); m_countingAppender = new CountingAppender(); m_countingAppender.ActivateOptions(); m_bufferingForwardingAppender = new BufferingForwardingAppender(); m_bufferingForwardingAppender.AddAppender(m_countingAppender); m_bufferingForwardingAppender.BufferSize = 5; m_bufferingForwardingAppender.ClearFilters(); m_bufferingForwardingAppender.Fix = FixFlags.Partial; m_bufferingForwardingAppender.Lossy = false; m_bufferingForwardingAppender.LossyEvaluator = null; m_bufferingForwardingAppender.Threshold = Level.All; }
public void AddingMultipleAppenders2() { CountingAppender alpha = new CountingAppender(); CountingAppender beta = new CountingAppender(); #if NETSTANDARD1_3 BasicConfigurator.Configure(Utils.GetRepository(), alpha, beta); #else BasicConfigurator.Configure(alpha, beta); #endif ILog log = LogManager.GetLogger(GetType()); log.Debug("Hello World"); Assert.AreEqual(1, alpha.Counter); Assert.AreEqual(1, beta.Counter); }
public void TestAppender1() { Logger log = (Logger)Utils.GetLogger("test").Logger; CountingAppender a1 = new CountingAppender(); a1.Name = "testAppender1"; log.AddAppender(a1); Assert.IsTrue(log.Appenders.Count > 0); var enumAppenders = ((IEnumerable)log.Appenders).GetEnumerator(); Assert.IsTrue(enumAppenders.MoveNext()); var a2 = (CountingAppender)enumAppenders.Current; Assert.AreEqual(a1, a2); }
public void AddingMultipleAppenders() { CountingAppender alpha = new CountingAppender(); CountingAppender beta = new CountingAppender(); Repository.Hierarchy.Hierarchy hierarchy = (Repository.Hierarchy.Hierarchy)LogManager.GetRepository(); hierarchy.Root.AddAppender(alpha); hierarchy.Root.AddAppender(beta); hierarchy.Configured = true; ILog log = LogManager.GetLogger(GetType()); log.Debug("Hello World"); Assert.AreEqual(1, alpha.Counter); Assert.AreEqual(1, beta.Counter); }
private void SetupRepository() { m_hierarchy = new Repository.Hierarchy.Hierarchy(); m_countingAppender = new CountingAppender(); m_countingAppender.ActivateOptions(); m_bufferingForwardingAppender = new BufferingForwardingAppender(); m_bufferingForwardingAppender.AddAppender(m_countingAppender); m_bufferingForwardingAppender.BufferSize = 0; m_bufferingForwardingAppender.ClearFilters(); m_bufferingForwardingAppender.Evaluator = null; m_bufferingForwardingAppender.Fix = FixFlags.Partial; m_bufferingForwardingAppender.Lossy = false; m_bufferingForwardingAppender.LossyEvaluator = null; m_bufferingForwardingAppender.Threshold = Level.All; m_bufferingForwardingAppender.ActivateOptions(); log4net.Config.BasicConfigurator.Configure(m_hierarchy, m_bufferingForwardingAppender); }
/// <summary> /// Test additivity flag. /// </summary> [Test] public void TestAdditivity3() { Logger root = ((Hierarchy)LogManager.GetLoggerRepository()).Root; Logger a = LogManager.GetLogger("a").Logger as Logger; Logger ab = LogManager.GetLogger("a.b").Logger as Logger; Logger abc = LogManager.GetLogger("a.b.c").Logger as Logger; Logger x = LogManager.GetLogger("x").Logger as Logger; CountingAppender caRoot = new CountingAppender(); CountingAppender caA = new CountingAppender(); CountingAppender caABC = new CountingAppender(); root.AddAppender(caRoot); a.AddAppender(caA); abc.AddAppender(caABC); a.Repository.Configured = true; Assertion.AssertEquals(caRoot.Counter, 0); Assertion.AssertEquals(caA.Counter, 0); Assertion.AssertEquals(caABC.Counter, 0); ab.Additivity = false; a.Log(Level.DEBUG, MSG, null); Assertion.AssertEquals(caRoot.Counter, 1); Assertion.AssertEquals(caA.Counter, 1); Assertion.AssertEquals(caABC.Counter, 0); ab.Log(Level.DEBUG, MSG, null); Assertion.AssertEquals(caRoot.Counter, 1); Assertion.AssertEquals(caA.Counter, 1); Assertion.AssertEquals(caABC.Counter, 0); abc.Log(Level.DEBUG, MSG, null); Assertion.AssertEquals(caRoot.Counter, 1); Assertion.AssertEquals(caA.Counter, 1); Assertion.AssertEquals(caABC.Counter, 1); }
public void TestAdditivity() { Logger a = (Logger)Utils.GetLogger("a").Logger; var ca = new CountingAppender(); a.AddAppender(ca); a.Repository.Configured = true;//设置了之后,Level才起作用。 Assert.AreEqual(ca.Counter, 0); a.Log(Level.Debug, "test debug log", null); Assert.AreEqual(ca.Counter, 1); a.Log(Level.Info, "test info log", null); Assert.AreEqual(ca.Counter, 2); a.Log(Level.Warn, "test warn log", null); Assert.AreEqual(ca.Counter, 3); a.Log(Level.Error, "test error log", null); Assert.AreEqual(ca.Counter, 4); }
public void TestAdditivity3() { Logger root = ((Repository.Hierarchy.Hierarchy)Utils.GetRepository()).Root; Logger a = (Logger)Utils.GetLogger("a").Logger; Logger ab = (Logger)Utils.GetLogger("a.b").Logger; Logger abc = (Logger)Utils.GetLogger("a.b.c").Logger; CountingAppender caRoot = new CountingAppender(); CountingAppender caA = new CountingAppender(); CountingAppender caABC = new CountingAppender(); root.AddAppender(caRoot); a.AddAppender(caA); abc.AddAppender(caABC); a.Repository.Configured = true; Assert.AreEqual(caRoot.Counter, 0); Assert.AreEqual(caA.Counter, 0); Assert.AreEqual(caABC.Counter, 0); ab.Additivity = false; a.Log(Level.Debug, MSG, null); Assert.AreEqual(caRoot.Counter, 1); Assert.AreEqual(caA.Counter, 1); Assert.AreEqual(caABC.Counter, 0); ab.Log(Level.Debug, MSG, null); Assert.AreEqual(caRoot.Counter, 1); Assert.AreEqual(caA.Counter, 1); Assert.AreEqual(caABC.Counter, 0); abc.Log(Level.Debug, MSG, null); Assert.AreEqual(caRoot.Counter, 1); Assert.AreEqual(caA.Counter, 1); Assert.AreEqual(caABC.Counter, 1); }
/// <summary> /// Configures the root appender for counting and rolling /// </summary> private void ConfigureRootAppender() { _root = ((Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Root; _root.Level = Level.Debug; _caRoot = new CountingAppender(); _root.AddAppender(_caRoot); Assert.AreEqual(_caRoot.Counter, 0); // // Set the root appender with a RollingFileAppender // _root.AddAppender(CreateAppender()); _root.Repository.Configured = true; }
public void TestAdditivity2() { /* * 记录器的层次Logger Hierarchy * https://blog.csdn.net/redez/article/details/518834 * 首先,我们先看一下何为层次,以我们最熟悉的继承为例。 * 假如类B是类C的父类,类A是类C的祖先类,类D是类C的子类。 * 这些类之间就构成一种层次关系。 * 在这些具有层次关系的类中,子类都可继承它的父类的特征,如类B的对象能调用类A中的非private实例变量和函数; * 而类C由于继承自类B,所以类B的对象可以同时调用类A和类B中的非private实例变量和函数。 * * 在log4j中,处于不同层次中的Logger也具有象类这样的继承关系。 * 如果一个应用中包含了上千个类,那么也几乎需要上千个Logger实例。 * 如何对这上千个Logger实例进行方便地配置,就是一个很重要的问题。 * Log4J采用了一种树状的继承层次巧妙地解决了这个问题。 * 在Log4J中Logger是具有层次关系的。它有一个共同的根,位于最上层,其它Logger遵循类似包的层次。 * * 根记录器root logger * 就象一个Java中的Object类一样,log4j中的logger层次中有一个称之为根记录器的记录器, * 其它所有的记录器都继承自这个根记录器。根记录器有两个特征: * 1) 根记录器总是存在。就像Java中的Object类一样,因为用log4j输出日志信息是通过记录器来实现的, * 所以只要你应用了log4j,根记录器就肯定存在的。 * 2) 根记录器没有名称,所以不能通过名称来取得根记录器。 * 但在Logger类中提供了getRootLogger()的方法来取得根记录器。 * * 记录器的层次 * Logger遵循类似包的层次。如 * static Logger rootLog = Logger.getRootLogger(); * static Logger log1 = Logger.getLogger("test4j"); * static Logger log2 = Logger.getLogger("test4j.test4j2"); * static Logger log3 = Logger.getLogger("test4j.test4j2.test4j2"); * 那么rootLog是log2的祖先子记录器,log1是log2的父记录器,log3是log2的子记录器。 * 记录器象Java中的类继承一样,子记录器可以继承父记录器的设置信息,也可以可以覆写相应的信息。 */ Logger a = (Logger)Utils.GetLogger("a").Logger; Logger ab = (Logger)Utils.GetLogger("a.b").Logger; Logger abc = (Logger)Utils.GetLogger("a.b.c").Logger; Logger x = (Logger)Utils.GetLogger("x").Logger; CountingAppender ca1 = new CountingAppender(); CountingAppender ca2 = new CountingAppender(); a.AddAppender(ca1); abc.AddAppender(ca2); a.Repository.Configured = true; Assert.AreEqual(ca1.Counter, 0); Assert.AreEqual(ca2.Counter, 0); ab.Log(Level.Debug, "", null); Assert.AreEqual(ca1.Counter, 1); Assert.AreEqual(ca2.Counter, 0); abc.Log(Level.Debug, "", null); Assert.AreEqual(ca1.Counter, 2); Assert.AreEqual(ca2.Counter, 1); x.Log(Level.Debug, "", null); Assert.AreEqual(ca1.Counter, 2); Assert.AreEqual(ca2.Counter, 1); }