【736c677c4】log4j多模块配置文件模板 (含注释及优先级说明)

来源:互联网 发布:历史周期律 知乎 编辑:程序博客网 时间:2024/06/05 16:05

# Output pattern : date [thread] priority category - message   FATAL 0  ERROR 3  WARN 4  INFO 6  DEBUG 7  ALL打开所有 OFF是关闭所有# 日志优先级:OFF --- FATAL > ERROR > WARN > INFO > DEBUG > TRACE --- ALL# Log4j 根配置语法 log4j.rootLogger = [ level ] , appenderName, appenderName, …log4j.rootLogger=DEBUG,RollingFile#Project defalult level#log4j.logger.org.activiti.engine.impl.persistence=DEBUG#log4j.logger.org.apache.shiro=DEBUGlog4j.logger.com.jeeplus=INFO,Console,Jeepluslog4j.logger.com.jeeplus.common.security.shiro=WARNlog4j.logger.com.jeeplus.common.utils.JedisUtils=WARNlog4j.logger.com.jeeplus.modules.sys.web.LoginController=WARNlog4j.logger.com.jeeplus.modules.oa.dao.OaNotifyDao.findCount=WARN#DynamicTrace levellog4j.logger.com.jeeplus.modules.dynamictrace=INFO,DynamicTrace #市长信箱 levellog4j.logger.com.jeeplus.modules.mayor=INFOlog4j.logger.com.jeeplus.modules.mayormail=INFOlog4j.logger.com.jeeplus.modules.mayorwork=INFO#Springframework level#log4j.logger.org.springframework=ERROR#ibatis log level#log4j.logger.com.ibatis=debug#log4j.logger.com.ibatis.common.jdbc.SimpleDataSource=debug#log4j.logger.com.ibatis.common.jdbc.ScriptRunner=debug#log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate=debug#log4j.logger.java.sql=DEBUGlog4j.logger.java.sql.Connection=INFOlog4j.logger.java.sql.Statement=INFOlog4j.logger.java.sql.PreparedStatement=INFO##########################################Appender###############################################Console Appenderlog4j.appender.Console=org.apache.log4j.ConsoleAppenderlog4j.appender.Console.Threshold = INFOlog4j.appender.Console.layout=org.apache.log4j.PatternLayoutlog4j.appender.Console.layout.ConversionPattern=%d %-5p [%c{5}] - %m%n#RollingFile Appenderlog4j.appender.RollingFile=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.RollingFile.Threshold = INFOlog4j.appender.RollingFile.File=../logs/all/all.loglog4j.appender.RollingFile.layout=org.apache.log4j.PatternLayoutlog4j.appender.RollingFile.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n#Jeeplus Appenderlog4j.appender.Jeeplus=org.apache.log4j.DailyRollingFileAppenderlog4j.appender.Jeeplus.File=../logs/jeeplus/jeeplus.loglog4j.appender.Jeeplus.layout=org.apache.log4j.PatternLayoutlog4j.appender.Jeeplus.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n#DynamicTrace Appenderlog4j.appender.DynamicTrace=org.apache.log4j.DailyRollingFileAppender   log4j.appender.DynamicTrace.File=../logs/dynamictrace/dynamictrace.loglog4j.appender.DynamicTrace.DatePattern='_'yyyy-MM-dd'.log'log4j.appender.DynamicTrace.layout=org.apache.log4j.PatternLayoutlog4j.appender.DynamicTrace.Append=true#log4j.appender.DynamicTrace.layout.ConversionPattern=[%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%nlog4j.additivity.com.jeeplus.modules.dynamictrace=false################################相关使用说明################################### log4j.logger.com.jeeplus.modules.dynamictrace=INFO,DynamicTrace --> 后面这个DynamicTrace是Appender的名字,如果不写的话默认使用log4j.rootLogger指向的Appender# log4j.appender.DynamicTrace.Append=true --> 如果为false的话则日志不会追加写到文件,最后输出的信息总是覆盖掉前面输出的信息# log4j.additivity.DynamicTrace=false --> 其中true是继承父类, false表示不继承。继承之后子类的日志也会打印在父类配置的位置下一份# 对于log4j.logger.com.jeeplus.modules.dynamictrace来说,log4j.logger.com.jeeplus就是它的父级别# 如果appender中没有配置Threshold来控制优先级的话,就完全采用logger中配置的优先级。日志是在logger层先被过一遍优先级,然后在appender中显示时再过一遍优先级

log4j里面的优先级有两个地方可以配置,一个是logger中,一个是appender中,再加上logger还可以有各级子logger,所以在输出log时最终到底使用哪个优先级让我觉得很困惑。在我多次进行测试之后,我觉得这个日志像在通过多层的过滤来控制日志范围和优先级,首先在rootLogger层先被过一遍优先级,然后在它的appender中显示时再过一遍优先级,如果有其他的子logger则再依次进行过滤,以此类推,最终在相应的层中按照过滤好的优先级将日志打印出来。

原创粉丝点击