如何在mysql驱动程序中启用日志记录

时间:2015-09-18 13:26:53

标签: java mysql logging jdbc

如何在mysql j连接器驱动程序中启用日志记录?

我在创建连接时使用了以下命令

"jdbc:mysql://localhost/test?logger=com.mysql.jdbc.log.StandardLogger&profileSQL=true";

我的log4j属性文件是这样的

# Root logger option
log4j.rootLogger=TRACE,  rfile
log4j.logger.com.mysql=trace, rfile
log4j.appender.rfile = org.apache.log4j.RollingFileAppender
log4j.appender.rfile.File =PrepStmt.log
log4j.appender.rfile.MaxFileSize = 100KB
log4j.appender.rfile.Append = true
log4j.appender.rfile.layout = org.apache.log4j.PatternLayout
log4j.appender.rfile.layout.ConversionPattern= %d [%t] %-5p %c %x - %m%n

我的日志文件中没有捕获任何日志。

2 个答案:

答案 0 :(得分:1)

Mysql不知道你的log4j属性。

enter image description here滚动到调试/分析部分:

  

记录器

     

实现" com.mysql.jdbc.log.Log"的类的名称。那将   用于将消息记录到。 (默认是   " com.mysql.jdbc.log.StandardLogger",登录STDERR)

     

默认值:com.mysql.jdbc.log.StandardLogger

所以你的mysql日志只是转到STDERR。如果要登录到log4j定义的目标,可以实现com.mysql.jdbc.log.Log,转发到log4j记录器,并在连接URL中指定该实现类。

答案 1 :(得分:0)

您可以配置log4jdbc来拦截JDBC连接并记录sql。