如何暂时禁用针对性能测试的log4net日志记录?

时间:2009-06-23 06:48:31

标签: .net unit-testing log4net

我将log4net记录器配置为使用我的单元测试运行,但是对于一些用作perf测试的选择单元测试,我想禁用日志记录。如何在运行时禁用(以及稍后重新启用)日志记录,基本上覆盖了.config文件中的记录器设置?

4 个答案:

答案 0 :(得分:7)

http://osdir.com/ml/windows.dotnet.log4net.user/2004-01/msg00010.html上建议

  

要禁用所有日志记录设置   存储库的阈值级别   OFF:

     

LogManager.GetLoggerRepository()。阈值   = LogManager.GetLoggerRepository()。LevelMap [“OFF”];

     

要启用日志记录,请将阈值设置为   ALL(这是默认值):

     

LogManager.GetLoggerRepository()。阈值   = LogManager.GetLoggerRepository()。LevelMap [“ALL”];

答案 1 :(得分:2)

一个简单的解决方案就是创建一个具有不同log4net设置的第二个测试项目......

答案 2 :(得分:1)

我无法回答您的问题,但是在进行性能测试或负载测试时,您应该保持日志设置与实时系统中的日志设置相同。

答案 3 :(得分:0)

我如何控制日志记录的示例:

using log4net;
using log4net.Appender;
using log4net.Config;
using log4net.Core;
using log4net.Layout;
using log4net.Repository.Hierarchy;
using NUnit.Framework;

namespace UnitTestProject1
{
  [TestFixture]
  [Apartment(ApartmentState.MTA)]
  public class UnitTest1
  {
    public UnitTest1()
    {
      BasicConfigurator.Configure(new ConsoleAppender
      {
        Layout = new PatternLayout("%-5level - %type{1} %line: %message%newline")
      });
      ((Hierarchy) LogManager.GetRepository()).Root.Level = Level.Off; // Level.Trace;
    }

    [Test]
    public void Test1()
    {
      // ...
    }
  }
}