我可以在 log.Trace 之前使用 log.IsDebugEnabled 吗?

Can I use log.IsDebugEnabled before a log.Trace?

我正在使用 log4net 记录来自我的 C# 应用程序的消息。我想知道在记录跟踪条目时是否可以使用以下代码:

if (log.IsDebugEnabled)
     log.Trace("MY trace entry");

我假设如果日志记录级别设置为跟踪,那么将始终启用调试。由于 Debug 和 trace 仅用于故障排除,因此允许任何调试代码也进入此块。

可能可以使用类似 LevelRangeFilter 的东西在调试级别禁用日志记录,但在跟踪级别启用它,这可能会导致您的方法出现问题

那么为什么不检查实际水平呢?

例如

if (log.Logger.IsEnabledFor(log4net.Core.Level.Trace))
    log.Trace("MY trace entry");