[英]Send ALL messages to one log file, and RavenDB logs to a different log file
這聽起來微不足道,但是我卻無法做到。 我有下面的NLog.config
<?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" autoReload="true" throwExceptions="true">
<variable name="logDirectory" value="${basedir}/App_Data/logs"/>
<targets>
<target name="file" xsi:type="AsyncWrapper">
<target xsi:type="File" name="f1" fileName="${logDirectory}\log1.txt" layout="${longdate} ${callsite} ${level} ${message} (File 1)"/>
</target>
<target xsi:type="File" name="fileGeneral" fileName="${logDirectory}\log_${shortdate}.txt" >
<layout xsi:type="Log4JXmlEventLayout"/>
</target>
<target xsi:type="File" name="fileRaven" fileName="${logDirectory}\raven_${shortdate}.txt" >
<layout xsi:type="Log4JXmlEventLayout"/>
</target>
</targets>
<rules>
<logger name="Raven.*" minlevel="Trace" writeTo="fileRaven"></logger>
<logger name="*" minlevel="Trace" writeTo="fileGeneral"></logger>
</rules>
</nlog>
最終以Raven + ALL日志到'log_ [date] .txt',而另一個RavenDB日志的副本在'raven_ [date] .txt'中。 應該怎么做?
<logger name="Raven.*" minlevel="Trace" writeTo="fileRaven" final="true"></logger>
如果final="true"
表示將不再執行Raven.*
任何規則,則將執行您要問的事情(如果我理解正確的話)。
不幸的是,這是不可能的。
原因是記錄器是從上到下進行評估的,將使用第一個匹配項,而下面的將不進行評估。
在您的情況下,這意味着在記錄與Raven相關的任何內容時,將使用第一個記錄器並停止流程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.