我必須從我的啟動類傳遞變數值
LogManager.Configuration.Variables["environment"] = "Development";
我在我的 nlog.config 檔案中添加了以下過濾器
<rules>
<logger name="*" minlevel="Error" writeTo="logfile">
<filters>
<when condition="equals('${var:environment}', 'Development')" action="Ignore" />
</filters>
</logger>
</rules>
即使我將值作為 Development 傳遞,該訊息仍會被記錄而不是忽略。
但是,當我對它的作業值進行硬編碼時
uj5u.com熱心網友回復:
您在 NLog中發現了一個錯誤,但如果您這樣做,它應該可以作業(也會更快):
<rules>
<logger name="*" minlevel="Error" writeTo="logfile">
<filters defaultAction='log'>
<when condition="'${var:environment}' == 'Development'" action="Ignore" />
</filters>
</logger>
</rules>
請注意,您也可以在minLevel
. 前任。minLevel="${var:EnvironmentMinLevel:whenEmpty=Error}"
,這比 快得多<filters>
。另請參閱https://github.com/NLog/NLog/wiki/Filtering-log-messages#semi-dynamic-routing-rules
NLog.LogManager.Configuration.Variables["EnvironmentMinLevel"] = "Off";
NLog.LogManager.ReconfigExistingLoggers();
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/440792.html
上一篇:剃刀頁面選單部分從資料庫獲取