1

这让我很头疼,而且这个库的文档似乎不存在。我有一个滚动平面文件侦听器...我想将调用堆栈包含在写入侦听器的任何消息中。

 <add name="RollingFileLog"
           fileName="C:\Rainmaker\Logs\SampleArchitectureService.Log"
           ... snipped for brevity
           traceOutputOptions="Callstack" />

我需要在我的格式化程序中包含什么才能显示调用堆栈/跟踪信息。格式化程序如下

<add type="Microsoft.Practices.EnterpriseLibrary.Logging.Formatters.TextFormatter, ..."
           name="TextFormatter"
           template="{timestamp(local)}: [{category}/{severity}] - {message} - ****WHATGOES HERE***" />

我已经尝试了一切,查看扩展属性字典,使用 {property()} 和 {keyvalue()} 标记,也没有文档。

有人可以向我解释这个traceOutputOptions属性的用途吗,如果是我的想法,我到底如何访问这些属性。

4

1 回答 1

2

MSDN 页面中的跟踪输出选项

TraceOutputOptions 属性确定跟踪输出的可选内容。该属性可以在配置文件中设置,也可以在执行期间以编程方式设置,以包含专门用于一段代码的附加数据。例如,您可以将控制台跟踪侦听器的 TraceOutputOptions 属性设置为 TraceOptions.Callstack 以将调用堆栈信息添加到跟踪输出。

另请记住,并非所有跟踪侦听器都支持它 http://msdn.microsoft.com/en-us/library/system.diagnostics.tracelistener.traceoutputoptions.aspx

我看到将 CallStack 信息放入文件的唯一方法是通过文本格式化程序中的扩展属性字典。

template="Extended Properties: {dictionary({key} - {value}{newline})}"

找到一篇有趣的文章,这应该对你有所帮助。“如何输出 TraceOutputOptions 值” http://entlib.codeplex.com/discussions/344343

于 2013-05-15T17:26:43.047 回答