【发布时间】: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