og4j.rootLogger=DEBUG,console,abc
log4j.appender.abc=org.apache.log4j.DailyRollingFileAppender
log4j.appender.abc.File=c:/core.log
log4j.appender.abc.layout=org.apache.log4j.PatternLayout
log4j.appender.abc.layout.ConversionPattern=%5p %d{yyyy-MM-dd HH:mm:ss}(%t:%c) %m%n
log4j.logger.java.sql.Connection=DEBUG
log4j.logger.java.sql.Statement=DEBUG
log4j.logger.java.sql.PreparedStatement=DEBUG
自定义logger类型会自动继承rootLogger中的appender设置,如上配置sql语句即是打印到console和abc
log4j.logger.java.sql.Connection=DEBUG,console
log4j.logger.java.sql.Statement=DEBUG,console
log4j.logger.java.sql.PreparedStatement=DEBUG,console
但如果又配置了console,则会在控制台中打印两遍sql语句。
log4j.logger.java.sql.Connection=DEBUG,abc
log4j.logger.java.sql.Statement=DEBUG,abc
log4j.logger.java.sql.PreparedStatement=DEBUG,abc
这个配置会在c:/core.log文件中打印两遍sql语句。
这个是别人的,我copy过来的,原文https://www.iteye.com/blog/wzt7576-2272037
个人理解:
局部的走了一次log4j,它自己打印了一次。。
全局又走了一遍。
全局我们一般不配debug,一般我们配error,其他的想哪个地方打就设debug就可以了。