C# 将Error及以上内容写入stderr,将Verbose及以上内容写入stdout
如何在C# 将Error及以上内容写入stderr,将Verbose及以上内容写入stdout,c#,.net,nlog,C#,.net,Nlog,如何在NLog中将配置设置为将错误及以上记录为stderr并将详细及以上记录为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="
NLog
中将配置设置为将错误及以上记录为stderr
并将详细及以上记录为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
//设置error=“true”将所有消息记录到stderr,但我只想记录错误消息
//如何配置将错误消息记录到stderr,将其他消息记录到stdout?
var logger=LogManager.GetCurrentClassLogger();
logger.Error(“错误消息”);//写入stderr
logger.Verbose(“详细消息”);//写入stderr,但必须写入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" />
一个解决方案可以是两个目标:
<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" />
但是写入log.warn将同时记录到控制台和控制台\u错误,我不需要记录log.warn到控制台,我想记录小于错误到控制台和大于错误到控制台\u错误我该怎么做?@user3205479最好戴上你的思考帽:),阅读minLevel
和maxLevel
并做一些测试。我学习了minLevel和maxLevel,它仍然将所有消息记录到控制台,并在控制台上发出警告_error@user3205479如果发现错误,则在上创建问题,但写入log.warn将同时记录到console和console\u错误,我不需要记录log.warn到控制台,我想记录小于error到控制台,大于error到控制台_error我该怎么做?@user3205479最好戴上你的思考帽:),阅读minLevel
和maxLevel
并做一些测试。我学习了minLevel和maxLevel,它仍然将所有消息记录到控制台,并在控制台上发出警告_error@user3205479如果您发现了一个bug,那么在