在单元测试中配置 log4net 以登录到控制台并显示正确的日期和时间

Grz*_*nio 6 .net c# log4net log4net-configuration

我正在运行一些单元测试,我希望 log4net 将所有内容都记录到控制台(仅供检查)。按照手册,我使用了:

BasicConfigurator.Configure();
Run Code Online (Sandbox Code Playgroud)

但是,这会将日志记录模式设置为%-4timestamp [%thread] %-5level %logger %ndc - %message%newline。如何更改它,以便获得通常的日期和时间(最多毫秒)而不是时间戳?

Ser*_*kiy 3

您可以从记录器存储库获取 ConsoleAppender 并更改其布局:

BasicConfigurator.Configure();
var appender = LogManager.GetRepository()
                         .GetAppenders()
                         .OfType<ConsoleAppender>()
                         .First();

appender.Layout = new PatternLayout("%d %-5level %logger - %m%n"); // set pattern
ILog logger = LogManager.GetLogger(logger_name); // obtain logger
Run Code Online (Sandbox Code Playgroud)

但通过配置文件进行配置是首选方式,因为您可以更改设置而无需重新编译测试。