【问题标题】:NLog FallBackgroup log exception on fail to logNLog FallBackgroup 日志异常记录失败
【发布时间】:2014-10-04 00:29:23
【问题描述】:

我的 NLog 配置中有以下内容。

<targets>
  <target xsi:type="FallbackGroup" name="MainTarget">
    <target xsi:type="AsyncWrapper" name="MyDataBaseLogger">
      <target xsi:type="MyTarget" />
    </target>
    <target xsi:type="AsyncWrapper" name="MyFileLogger">
      <target xsi:type="MyTarget2" />
    </target>        
  </target>
</targets>

MyTarget.cs 如下:

   [Target("MyTarget")]
    public class MyTarget : TargetWithLayout
    {
        protected override void Write(LogEventInfo logEvent)
        {
            WriteLogEvent(logEvent);
        }

        protected override void Write(AsyncLogEventInfo[] logEvents)
        {
            foreach (var logEvent in logEvents)
            {
                WriteLogEvent(logEvent.LogEvent);
            }
        }

        private void WriteLogEvent(LogEventInfo logEvent)
        {
            throw new Exception("My Logger Failed");
            Debug.WriteLine(logEvent.FormattedMessage);
        }
    }

MyTarget2.cs

[Target("MyTarget2")]
public class MyTarget2 : TargetWithLayout
{
    protected override void Write(LogEventInfo logEvent)
    {
        WriteLogEvent(logEvent);
    }

    protected override void Write(AsyncLogEventInfo[] logEvents)
    {
        foreach (var logEvent in logEvents)
        {
            WriteLogEvent(logEvent.LogEvent);
        }
    }

    private void WriteLogEvent(LogEventInfo logEvent)
    {
        Debug.WriteLine(logEvent.FormattedMessage);
    }
}

因此,在这种情况下,如果 MyTarget 失败(在本例中失败),它会转到 MyTarget2,它确实如此。但是如何记录 MyTarget 未能在第一个实例中记录异常的异常/消息?

谢谢,

【问题讨论】:

    标签: c# exception logging nlog fallback


    【解决方案1】:

    了解目标失败原因的唯一方法是启用内部日志并查看输出。可以像这里描述的那样启用内部日志,https://github.com/NLog/NLog/wiki/Internal-Logging

    【讨论】:

    • 所以任何失败的记录尝试都会传播到内部日志?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-29
    • 1970-01-01
    • 2011-10-23
    • 2011-01-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多