NLog 内部异常记录
NLog Inner Exception Logging
我正在尝试使用 NLog 记录内部异常消息。这是我的 NLog.config 文件的一部分:
<target name="errors" xsi:type="File" layout="${longdate}${newline}
- Exception Message: ${exception:format=Message}${newline}
- InnerException Message: ${exception:innerExceptionSeparator=TEXT}${newline}"
fileName="\Logs\errors-${shortdate}.log"
concurrentWrites="true" />
</targets>
对于 NLog.config[=22 的 Exception Message
和 InnerException Message
行,我收到相同的消息 See the inner exception for details
=] 文件.
这对我有用:
<target name="errors" xsi:type="File" layout="
${message}
${onexception:EXCEPTION OCCURRED\:
${exception:format=type,message,method:maxInnerExceptionLevel=5:innerFormat=shortType,message,method}}"
fileName="\Logs\errors-${shortdate}.log"
concurrentWrites="true"
/>
</targets>
属性 说明:
${exception:maxInnerExceptionLevel=N}
- 控制记录多少内部异常。为了向后兼容,默认为零。
${exception:innerExceptionSeparator=TEXT}
- 定义分隔内部异常的文本。默认为换行字符串(特定于平台)。
${exception:innerFormat=FORMATSTRING}
- 定义内部异常的格式与 ${exception:format=FORMATSTRING}
定义顶级异常的格式相同。如果未指定此参数,则对顶级异常和内部异常使用相同的格式。
这里是官方的Nlog Documentation用于记录内部异常
另一种可能性是在内部异常之间添加新行是在 xml 中使用换行符 

,因为 innerExceptionSeparator
未以某种特殊方式解析并按原样加载是写的。所以 innerExceptionSeparator=${newline}
将不起作用。
layout="${message}${onexception:${newline}${exception:maxInnerExceptionLevel=10:innerExceptionSeparator=
	:format=shortType,message}}
这将导致内部异常文本从新行开始并按制表符缩进
然而,这仅在使用 ILogger.Error(Exception, string)
方法时有效。
ILogger.Error(Exception)
忽略此布局
我正在尝试使用 NLog 记录内部异常消息。这是我的 NLog.config 文件的一部分:
<target name="errors" xsi:type="File" layout="${longdate}${newline}
- Exception Message: ${exception:format=Message}${newline}
- InnerException Message: ${exception:innerExceptionSeparator=TEXT}${newline}"
fileName="\Logs\errors-${shortdate}.log"
concurrentWrites="true" />
</targets>
对于 NLog.config[=22 的 Exception Message
和 InnerException Message
行,我收到相同的消息 See the inner exception for details
=] 文件.
这对我有用:
<target name="errors" xsi:type="File" layout="
${message}
${onexception:EXCEPTION OCCURRED\:
${exception:format=type,message,method:maxInnerExceptionLevel=5:innerFormat=shortType,message,method}}"
fileName="\Logs\errors-${shortdate}.log"
concurrentWrites="true"
/>
</targets>
属性 说明:
${exception:maxInnerExceptionLevel=N}
- 控制记录多少内部异常。为了向后兼容,默认为零。${exception:innerExceptionSeparator=TEXT}
- 定义分隔内部异常的文本。默认为换行字符串(特定于平台)。${exception:innerFormat=FORMATSTRING}
- 定义内部异常的格式与${exception:format=FORMATSTRING}
定义顶级异常的格式相同。如果未指定此参数,则对顶级异常和内部异常使用相同的格式。
这里是官方的Nlog Documentation用于记录内部异常
另一种可能性是在内部异常之间添加新行是在 xml 中使用换行符 

,因为 innerExceptionSeparator
未以某种特殊方式解析并按原样加载是写的。所以 innerExceptionSeparator=${newline}
将不起作用。
layout="${message}${onexception:${newline}${exception:maxInnerExceptionLevel=10:innerExceptionSeparator=
	:format=shortType,message}}
这将导致内部异常文本从新行开始并按制表符缩进
然而,这仅在使用 ILogger.Error(Exception, string)
方法时有效。
ILogger.Error(Exception)
忽略此布局