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