【发布时间】:2011-06-22 18:26:09
【问题描述】:
我希望 log4j 将我的错误记录在 MySql 数据库中,但是关于这方面的官方文档非常少(为什么?)。 无论如何,这是我对 log4j.xml 配置文件的尝试:
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="jdbcAppender" class="org.apache.log4j.jdbc.JDBCAppender">
<param name="URL" value="jdbc:mysql://my_host/my_database" />
<param name="Driver" value="com.mysql.jdbc.Driver" />
<param name="User" value="my_user_name" />
<param name="Password" value="my_passwod" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="INSERT INTO errorlogs (Date, log_level, Application, Message, Exception) VALUES (TIMESTAMP(now()),'%p', ?? '%m', '%e' )"
/>
</layout>
</appender>
我需要自定义“应用程序”参数。在 C# 中使用 log4net,在我的代码中我会这样添加:
log4net.GlobalContext.Properties["Application"] = applciation;
并像这样在我的 xml 配置文件中添加它:
<parameter>
<parameterName value="?application" />
<dbType value="String" />
<size value="50" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%property{Application}" />
</layout>
</parameter>
我想知道如何用 log4j 做同样的事情?
谢谢!
【问题讨论】:
-
很久以前我没用过这个:mannhaupt.com/danko/projects 但是数据库日志记录不是一个好主意。资源太“昂贵”了。
-
是的,我明白你的意思。将来我想将我的日志发送到一个 Web 服务,该服务将通过 TCPAppender 处理数据库日志(这应该存在吧?)。不过,暂时是直接记录在数据库中的。