如果Exception不为null,Nlog中是否存在输出特定字符的方法.例如我的布局是:
layout="${longdate}|${callsite:skipFrames=1}|${message}|${exception:format=tostring}"
Run Code Online (Sandbox Code Playgroud)
如果我调用NLog.Debug("Hello")输出将是:
2015-12-07 11:50:00.5114|MyDll.MyClass.MyMethod|Hello|
Run Code Online (Sandbox Code Playgroud)
最后一个角色|正在打印出来.有没有办法防止这种情况,只有在打印出实际异常时才打印出来?
ska*_*kin 10
另请查看"何时"布局渲染器
${when:when=Condition:inner=Layout}
Run Code Online (Sandbox Code Playgroud)
由OP编辑,为未来的访问者展示工作解决方案:
layout="${longdate}|${callsite:skipFrames=1}|${message}${when:when=length('${exception}')>0:Inner=|}${exception:format=tostring}"
Run Code Online (Sandbox Code Playgroud)
您可以${onexception:INNER}为此使用布局渲染器。
${message}${onexception:|${exception:format=Type,Message,StackTrace,Data}}
Run Code Online (Sandbox Code Playgroud)
如果有异常,它将以“ |”开头 其次是您指定的例外格式。如果没有异常,则仅呈现$ {message}。
| 归档时间: |
|
| 查看次数: |
1654 次 |
| 最近记录: |