我已经在我的app.config中定义了一些侦听器 + 添加带有日期时间的traceOutputOptions。它完全符合我没有额外包(log4net)/没有额外配置的需求。
但是文件中的日期时间是UTC的,这使得通常很难"快速阅读"和比较。有没有办法在本地时间强制输出而不覆盖默认跟踪系统?
<trace autoflush="true" indentsize="4">
<listeners>
<add name="delimitedListener" type="System.Diagnostics.DelimitedListTraceListener" delimiter=";" initializeData="output.log" traceOutputOptions="DateTime">
<filter type="System.Diagnostics.EventTypeFilter" initializeData="Warning"/>
</add>
<add name="consoleListener" type="System.Diagnostics.ConsoleTraceListener"/>
<remove name="Default" />
</listeners>
</trace>
我很确定没有办法让它使用本地时间。我想我可能很久以前就已经提交了关于这个问题的错误报告,Microsoft说他们不会修复它。如果我没记错的话,Microsoft说在本地时间打印会导致性能问题。另外,我认为这可能与信息可以记录到 ETW 的事实有关?对我来说似乎真的很愚蠢。我愿意为它带来性能影响,因为必须从 GMT 转换日期/时间是非常用户敌对的。我同意你的看法,我宁愿只使用.NET内置日志记录,而不是必须向Log4net添加依赖项。不幸的是,Microsoft似乎不在乎让它变得非常强大。对我来说,这似乎是一个非常明显的可用性问题。