我的项目有以下nlog.config文件。当我在本地调试时,它按预期工作,正在过滤Hangfire消息以仅显示警告及更高版本。但是在我们的登台服务器(IIS 8.5)上,nlog似乎忽略了规则,只记录了所有内容(包括信息)给elmah:
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<extensions>
<add assembly="NLog.Elmah"/>
</extensions>
<targets>
<target xsi:type="Elmah" name="elmahWithLogLevelAsType" layout="${message}" LogLevelAsType="true"/>
</targets>
<rules>
<logger name="Hangfire.*" minlevel="Warn" writeTo="elmahWithLogLevelAsType" final="true" />
<logger name="*" minlevel="Info" writeTo="elmahWithLogLevelAsType" />
</rules>
</nlog>
即使我删除Hangfire.*
规则并将邮件更改为minlevel="Warn"
,它仍会记录信息项目。
答案 0 :(得分:1)
认为您正在运行两个不同版本的NLog。
这将捕获所有带警告的日志事件(及以上级别):
<div class="outer">
<div class="inner">
<iframe></iframe>
</div>
</div>
这意味着所有包含信息或以下信息的日志事件都将尝试下一条规则:
<logger name="Hangfire.*" minlevel="Warn" writeTo="elmahWithLogLevelAsType" final="true" />
请尝试使用此配置:
<logger name="*" minlevel="Info" writeTo="elmahWithLogLevelAsType" />