【发布时间】:2013-07-19 17:38:33
【问题描述】:
我正在尝试使用 Log4Net 将异常记录到数据库中。我正在使用 adonetappender,它确实有效,但不是最佳的。
如果我这样配置异常参数...
<parameter>
<parameterName value="@exception"/>
<dbType value="String"/>
<size value="-1"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%exception"/>
</layout>
</parameter>
它可以工作,但在没有异常时插入 "" 而不是 null。
如果我有这样的结果,我会得到相同的结果......
<parameter>
<parameterName value="@exception"/>
<dbType value="String"/>
<size value="-1"/>
<layout type="log4net.Layout.ExceptionLayout">
<!-- <key value="exception" /> -->
<!--<conversionPattern value="%exception"/>-->
</layout>
</parameter>
但如果我有这样的
<parameter>
<parameterName value="@exception"/>
<dbType value="String"/>
<size value="-1"/>
<layout type="log4net.Layout.RawPropertyLayout">
<key value="exception" />
</layout>
</parameter>
它只插入空值...
问题可能来自我们有一个总是调用的静态日志包装器
LogManager.GetLogger("[GoodLife.Common.Logging]").Debug(message, e); // e being null if there is no exception.
当我在记录器上调用调试方法时,如果e 为空,我有办法让它插入空值吗?
关于布局的 log4net 文档并不是很有帮助,我从 Default values for AdoNetAppender parameter 获得了最后一个配置
【问题讨论】:
标签: log4net log4net-configuration log4net-appender