3

我正在使用通过配置文件配置的 log4net。在一种情况下,我希望所有内容都在调试中登录(升级期间使用的一些代码)。无论如何我可以获得当前的日志记录级别,将其设置为调试,运行指定的代码,然后返回到之前的状态吗?

4

3 回答 3

3

您可以在配置文件中添加一个专门用于调试的部分

 <logger name="MyApp.DebugLogging" additivity="false">
        <level value="DEBUG"/>
        <appender-ref ref="MainLog"/>
    </logger

然后在您的代码中,您可以使用以下命令访问此记录器:

 private static readonly ILog debuglog = log4net.LogManager.GetLogger("MyApp.DebugLogging");

并将代码块中的变量用作

 debuglog .Debug(ex);

这里的想法是您应该能够在配置文件中创建不同的记录器,然后可以灵活地选择在代码块中使用哪个记录器

于 2011-01-17T14:03:44.903 回答
1

这是一个想法:

仅使用 log4net 配置文件。将“watch”标志设置为true,以便观看它。

在此配置文件中,设置一个日志过滤器(在每个附加程序中)。将其最低级别设置为,比如说,Info或其他。请参阅http://logging.apache.org/log4net/release/manual/configuration.html中的过滤器部分

然后,在升级阶段之前,编辑配置文件并将过滤器的最低级别更改为Debug.

升级完成后,将过滤器的最低级别设置回其原始值。

于 2011-01-17T13:53:09.683 回答
1

这个问题讨论了 Log4Net loggers 的动态重新配置,它应该为您提供所需的信息。

于 2011-01-17T14:15:33.490 回答