2
我正在嘗試爲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
}
嗯,是 - 當然我可以 - 我只是希望這樣的事情威力*已經*在log4net中可用.... – 2013-03-27 14:03:39
你只有ILog接口https://logging.apache.org/log4net/release/sdk/log4net.ILogMembers.html,它來自你的LogManager,這是一個非常簡單的。沒有什麼可以幫助你在這個時間點。 – Peter 2013-03-27 14:05:47
但是,您可以獲取logger的實現:log.Logger.IsEnabledFor()...而log.Logger.Log(...)可以幫助您,Log函數不打算直接使用。 – Peter 2013-03-27 14:11:09