sql server jdbc是通过log4j来进行写日志的。可以通过针对log4j的配置来打开sql server jdbc的日志,首先编写log4j.properites的配置文件,此配置文件的内容如下所示:
log4j.rootLogger=error, ServerDailyRollingFile, stdout
log4j.appender.ServerDailyRollingFile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.ServerDailyRollingFile.DatePattern='.'yyyy-MM-dd
log4j.appender.ServerDailyRollingFile.File=C://logs/notify-subscription.log
log4j.appender.ServerDailyRollingFile.layout=org.apache.log4j.PatternLayout
log4j.appender.ServerDailyRollingFile.layout.ConversionPattern=%d - %m%n
log4j.appender.ServerDailyRollingFile.Append=true
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %p [%c] %m%n
经过上面的配置,日志应该写到File指定的文件中,但是实际并没有写到这个文件中去。于是在网上找了下原因,在main函数的入口处增加了如下的代码:
PropertyConfigurator.configure("log4j.properites");
Handler fh;
try {
fh = new FileHandler("./jdbc_log.log");
fh.setLevel(Level.ALL);
fh.setFormatter(new SimpleFormatter());
Logger.getLogger("").addHandler(fh);
Logger.getLogger("").setLevel(Level.ALL);
} catch (SecurityException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
再次运行就可以把日志写到jdbc_log.log文件中了。