Logging 检查是否设置了特定级别,如果设置了,请登录该级别
我正在尝试为log4net编写一些扩展方法,其中一个要求是用户可以指定希望将消息记录在哪个级别 现在,我希望能够检查我的log4net记录器中是否启用了该级别 我知道我可以查Logging 检查是否设置了特定级别,如果设置了,请登录该级别,logging,log4net,Logging,Log4net,我正在尝试为log4net编写一些扩展方法,其中一个要求是用户可以指定希望将消息记录在哪个级别 现在,我希望能够检查我的log4net记录器中是否启用了该级别 我知道我可以查 ILog log=LogManager.GetLogger(…); if(log.IsDebugEnabled) { //记录某事 } 但是,如果给定一个log4net.Core.Level变量,是否有方法检查该级别是否已启用 所以我希望可能会有这样的情况: ILog log=LogManager.GetLogger(…
ILog log=LogManager.GetLogger(…);
if(log.IsDebugEnabled)
{
//记录某事
}
但是,如果给定一个log4net.Core.Level
变量,是否有方法检查该级别是否已启用
所以我希望可能会有这样的情况:
ILog log=LogManager.GetLogger(…);
log4net.Core.Level myLevel=Level.Warn;
if(log.IsLevelEnabled(myLevel))
{
//记录某事
log.log(myLevel,message);
}
有办法做到这一点吗
解决方案:提及的对等方
隐藏在其中一条注释中-如何执行此操作:
但是,您可以获得记录器实现:
log.logger.isenablefor()…
和log.logger.log(…)
可以帮助您,而log
函数不打算直接使用
因此,现在我可以轻松使用:
if(log.Logger.IsEnabledFor(myLevel))
{
//记录某事
}
您可以为ILog创建扩展方法:
公共静态类Log4NetExtensionMethods
{
公共静态bool IsLevelEnabled(此ILog日志,log4net.Core.Level)
{
...
}
公共静态void LogAtLevel(此ILog日志,log4net.Core.Level,字符串消息)
{
...
}
}
是的-当然可以-我只是希望类似的东西可能已经在log4net中提供了…您只有ILog接口,它来自于您的LogManager,而且非常简单。此时没有任何内容可以帮助您。但是,您可以获得记录器实现:log.logger.IsEnabledFor()。。。而log.Logger.log(…)可以帮助您,日志功能不是直接使用的。啊!这正是我要找的-log.Logger.isenablefor(level)
-谢谢!!