如何将 NLog
中的配置设置为日志错误及以上为 stderr
和log doybose及以上及以上为 stdout
?
// Setting error="true" logs all messages to stderr but I want to log only error messages
// How would I configure to log err messages to stderr and others to stdout?
<target name="console" xsi:type="Console" error="true">
<layout xsi:type="JsonLayout">
<attribute name="Level" layout="${level}" />
<attribute name="Timestamp" layout="${longdate}" />
<attribute name="Message" layout="${message}" />
</layout>
</target>
<logger name="*" minlevel="Trace" writeTo="debug,console" />
var logger = LogManager.GetCurrentClassLogger();
logger.Error("Error Message"); // Writes to stderr
logger.Verbose("Verbose Message"); // Writes to stderr but must write to stdout
任何帮助都非常感谢。
一个解决方案可能是两个目标:
<target name="console" xsi:type="Console">
<layout xsi:type="JsonLayout">
<attribute name="Level" layout="${level}" />
<attribute name="Timestamp" layout="${longdate}" />
<attribute name="Message" layout="${message}" />
</layout>
</target>
<target name="console_error" xsi:type="Console" error="true">
<layout xsi:type="JsonLayout">
<attribute name="Level" layout="${level}" />
<attribute name="Timestamp" layout="${longdate}" />
<attribute name="Message" layout="${message}" />
<attribute name="Exception" layout="${exception}" />
</layout>
</target>
,然后有两个规则:
<logger name="*" minlevel="Warn" writeTo="debug,console_error" />
<logger name="*" maxLevel="Info" writeTo="debug,console" />