如何在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
我的日志文件中没有捕获任何日志。
答案 0 :(得分:1)
Mysql不知道你的log4j属性。
记录器
实现" 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。