我正在尝试为 log4net 编写一些扩展方法,一个要求是用户可以指定他希望我的扩展在哪个级别上记录消息。
现在我希望能够检查我的 log4net 记录器中是否启用了该级别。
我知道我可以检查
ILog log = LogManager.GetLogger(....);
if(log.IsDebugEnabled)
{
// log something
}
但是有没有办法给定一个log4net.Core.Level
变量来检查该级别是否启用?
所以我希望可能有类似的东西:
ILog log = LogManager.GetLogger(....);
log4net.Core.Level myLevel = Level.Warn;
if(log.IsLevelEnabled(myLevel))
{
// log something
log.Log(myLevel, message);
}
有没有办法做到这一点?
解决方案: peer
提到 - 隐藏在其中一条评论中 - 如何做到这一点:
但是,您可以获得记录器实现:
log.Logger.IsEnabledFor()...
并且log.Logger.Log(...)
可以帮助您,该Log
功能不打算直接使用。
所以现在我可以轻松使用:
if(log.Logger.IsEnabledFor(myLevel))
{
// log something
}