Generic Logging 和 Specific Logging(使用 NLOG),Duplication of Logging
Generic Logging and Specific Logging (using NLOG), Duplication of Logging
我正在尝试创建 2 个记录器(使用 NLog)
- 首先记录器记录所有需要的项目以登录解决方案
- 另一个跟踪特定项目(我这样做是为了保持事情的清晰和重点,这里只 运行
trace
)
配置如下
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="logfile"
xsi:type="File"
layout="${longdate} ${level} ${threadid} ${callsite} ${message}"
fileName="${basedir}\Logs\GatewayApplicationDebugAndErrorLog.txt"
archiveNumbering="Rolling"
maxArchiveFiles="10"
archiveAboveSize="10000000"/>
<target name="J1939Trace"
xsi:type="File"
layout="${longdate} ${level} ${threadid} ${callsite} ${message}"
fileName="${basedir}\Logs\J1939Trace.txt"
archiveNumbering="Rolling"
maxArchiveFiles="10"
archiveAboveSize="10000000"/>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="logfile" />
<logger name="J1939Trace" maxlevel="Trace" writeTo="J1939Trace" final="true" />
</rules>
用法如下所示
private readonly Logger logger = LogManager.GetCurrentClassLogger(); // Generic Logger
private readonly Logger j1939Logger = LogManager.GetLogger("J1939Trace"); // Specific Logger.
我观察到特定记录器项也记录在通用日志项中,我不希望出现重复。任何想法我做错了什么?
这行得通吗?
发件人:NLog: How to exclude specific loggers from a specific rule?
添加 final="true" 意味着不再对 "SpammyLogger" 产生的事件执行更多规则,但它仅适用于指定级别。(参见 https://github.com/nlog/nlog/wiki/Configuration-file#rules)
确保通读答案中的所有评论。
我正在尝试创建 2 个记录器(使用 NLog)
- 首先记录器记录所有需要的项目以登录解决方案
- 另一个跟踪特定项目(我这样做是为了保持事情的清晰和重点,这里只 运行
trace
)
配置如下
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<targets>
<target name="logfile"
xsi:type="File"
layout="${longdate} ${level} ${threadid} ${callsite} ${message}"
fileName="${basedir}\Logs\GatewayApplicationDebugAndErrorLog.txt"
archiveNumbering="Rolling"
maxArchiveFiles="10"
archiveAboveSize="10000000"/>
<target name="J1939Trace"
xsi:type="File"
layout="${longdate} ${level} ${threadid} ${callsite} ${message}"
fileName="${basedir}\Logs\J1939Trace.txt"
archiveNumbering="Rolling"
maxArchiveFiles="10"
archiveAboveSize="10000000"/>
</targets>
<rules>
<logger name="*" minlevel="Trace" writeTo="logfile" />
<logger name="J1939Trace" maxlevel="Trace" writeTo="J1939Trace" final="true" />
</rules>
用法如下所示
private readonly Logger logger = LogManager.GetCurrentClassLogger(); // Generic Logger
private readonly Logger j1939Logger = LogManager.GetLogger("J1939Trace"); // Specific Logger.
我观察到特定记录器项也记录在通用日志项中,我不希望出现重复。任何想法我做错了什么?
这行得通吗?
发件人:NLog: How to exclude specific loggers from a specific rule?
添加 final="true" 意味着不再对 "SpammyLogger" 产生的事件执行更多规则,但它仅适用于指定级别。(参见 https://github.com/nlog/nlog/wiki/Configuration-file#rules)
确保通读答案中的所有评论。