我的网站提供的网络服务很少.这是我想达到的目标:
我的初衷是使用log4net.但是从这些演练(http://sadi02.wordpress.com/2008/09/15/how-to-store-log-in-database-using-log4net/,http://logging.apache.org/ log4net/release/config-examples.html)我没有看到将自定义数据添加到日志表中的简单方法.
将log4net用于此类目的是否可行?如何更改日志表架构以存储自定义数据?我应该修改log4net库的源代码吗?编写自定义功能来存储此类数据可能会更好吗?
谢谢.
Dil*_*e-O 14
根据这个讨论,这个过程非常简单.
第一步是将appender声明中的命令文本更新到配置文件中:
<commandText value="INSERT INTO Log4Net ([Date],[Thread],[Level],[Logger],[Message],[Exception],[MyColumn]) VALUES (@log_date, @thread, @log_level, @logger, @message, @exception,@MyColumn)"/>
Run Code Online (Sandbox Code Playgroud)
下一步是为自定义列添加新参数定义:
<parameter>
<parameterName value="@MyColumn "/>
<dbType value="String" />
<size value="255" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{MyColumn}" />
</layout>
</parameter>
Run Code Online (Sandbox Code Playgroud)
最后,您可以通过log4net的GlobalContext属性访问该值:
log4net.GlobalContext.Properties["MyColumn"] = "MyValue";
log.Debug("My message");
Run Code Online (Sandbox Code Playgroud)
您可以根据需要为多个字段执行此操作.
建议的答案都不适合我。问题是我需要有几个自定义字段。对我来说,创建不同的记录器实例或每次通过“属性”设置列值似乎太复杂了。
我将使用(实际上,已经实现的)自定义记录器将数据放入数据库中。
| 归档时间: |
|
| 查看次数: |
9041 次 |
| 最近记录: |