有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Log4j登录数据库

我正在尝试将脚本的日志设置到数据库的表中。 我正在使用以下属性:

log4j.rootLogger=WARN, DB
log4j.appender.DB=org.apache.log4j.jdbc.JDBCAppender

log4j.appender.DB.URL=jdbc:mysql://<remote-mysql-server>/<DB-name>

log4j.appender.DB.driver=com.mysql.jdbc.Driver

log4j.appender.DB.user=userid
log4j.appender.DB.password=pswd

log4j.appender.DB.sql=insert into logs(date,level,logger,message) values('%d','%p','%c{3}:%L','%m')

log4j.appender.DB.layout=org.apache.log4j.PatternLayout

我每小时储存一次日志。对于第一次运行,它会按预期运行和记录。但是,对于下一个周期,它会抛出如下错误:

log4j:ERROR Failed to excute sql
 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

我理解其原因,因为mysql连接设置为连接超时

Log4j中是否有任何方法可以确保在记录日志之前,我建立了一个连接,然后在将日志插入表后关闭它? 在登录脚本之前,我尝试建立一个连接,但这对我来说不起作用。 我正在使用Ant编译我的Java脚本


共 (0) 个答案