日期:2014-05-20  浏览次数:20663 次

log4j,如何把sql日志输出到不同文件中?
团队开发中,log4j设置了多个输出文件,每个模块输出到不同日志文件中去,每个模块的开发者调用时,使用自己指定的名称即可,如下:
Java code
static Logger loggerError = Logger.getLogger("Mylogger");


模块日志分开了互不干扰,但sql日志有没有办法分开呢?

数据库操作使用的是ibatis,现在log4j.properties是这样配置的:
log4j.logger.java.sql.Connection=ALL
log4j.logger.java.sql.Statement=all,logfile
log4j.logger.java.sql.PreparedStatement=all,logfile
log4j.appender.logfile= ........

希望是,哪个模块访问的数据库,则写在哪个模块的日志文件中,这样大家调试起来不相互干扰。而且,这些模块使用不同的数据源,即不同的库,混在一起很乱(能根据不同的数据源划分也可以)。

------解决方案--------------------
不同模块可以区分不同的日志文件。
但是不同模块调用数据访问组件时记录的日志,是数组访问组件自己记录的,这个就很难区分的出来了。


有个小建议,log4j用xml配置文件会更灵活些。不过应该仍然解决不了你这个问题。