一行中的异常(堆栈跟踪)

时间:2017-02-13 13:48:46

标签: c# nlog

我使用Nlog进行调试/信息/例外。它的工作正常,但问题是当我记录异常时它会在新行上记录堆栈跟踪。

有人可以帮助我如何使用一行,布局我使用:

<target xsi:type="File" name="default" layout="${longdate} -- [${level:uppercase=true}] -- ${message} ${onexception:${newline}EXCEPTION OCCURED\: ${exception:format=ToString}}" 
        fileName="${basedir}/logs/logfile.txt" keepFileOpen="false" 
        archiveFileName="${basedir}/logs/archive/logfile_${shortdate}.{##}.log"
        archiveNumbering="Sequence" archiveEvery="Day" maxArchiveFiles="30" />

我正在尝试编写一个小型查看器,它将读取log.txt并逐行阅读一些占位符,以便获得任何帮助。

1 个答案:

答案 0 :(得分:2)

ToString格式是带有换行符的默认.NET格式。您可以用${replace-newlines替换它们,但它有点hacky。它看起来像这样:

${replace-newlines:${exception:format=ToString}}}

更好的选择是列出您需要的属性并设置分隔符。 ${exception} are listed at NLog's wiki的所有选项。例如:

${exception:format=message,type,method,stacktrace:innerExceptionSeparator=|:separator:,maxInnerExceptionLevel=10}

PS:此处不需要maxInnerExceptionLevel,但建议将默认设置为0。