Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将Error及以上内容写入stderr,将Verbose及以上内容写入stdout_C#_.net_Nlog - Fatal编程技术网

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,那么在