Log4J-Log4J配置介绍/Log4J不同模块不同日志级别输出到不同文件的配置

##=======================Log4J一些日志级别配置测试说明20180622============================##

#==============一、根配置====================#
#1. 首先定义根配置,log4j.rootLogger = [日志级别] ,  [自定义appender1], [自定义appender2], ......
#2. log4j.appender.[自定义appender1] = [定义输出类型的类]
#3. log4j.appender.[自定义appender1].Target = [输出目标]
#4. log4j.appender.[自定义appender1].Threshold = [true/false] 日志级别限定(与根配置的级别比较取高级别,会输出这个高级别或以上的日志,
#   如根配置debug,这里配置warn,会输出warn或以上的级别)
#5. log4j.appender.[自定义appender1].laylout = [输出格式类]
#6. log4j.appender.[自定义appender1].laylout.ConversionPattern = [输出格式]

#=================二、自定义模块配置===================#
#    自定义模块配置与根配置没有关系,根的级别选择不会影响自定义的级别。只是additivity表示会不会使用根的配置也输出一次
#1. log4j.logger.[自定义模块名] = [日志级别] , [自定义appender1], [自定义appender2],......
#   自定义模块配置,如果是slf4j调用的话,需要这样用 Logger logger = LoggerFactory.getLogger([自定义模块名])
#2. log4j.additivity.[自定义appender1]= [true/false] 默认是true,表示父(根)配置的输出方式也使用,
#   如果是false,表示不使用,也就是比如根里配置了一个控制台输出,这里就不会输出了
#3. 其他一些配置同根配置,如输出格式等,输出为文件等
#4. log4j.appender.[自定义appender1].filter.F1 = org.apache.log4j.varia.LevelRangeFilter
#   日志级别过滤限定类
#5. log4j.appender.[自定义appender1].filter.F1.LevelMin= [level]
#   log4j.appender.[自定义appender1].filter.F1.LevelMax= [level]
#   过滤限定最高与最小级别,这里限定后的级别,与模块根级别,还有Threshold的配置取交集

#=================三、自定义包配置===================#
# 配置方式与自定义模块一样,只是把模块名或称包名。不同的是自定义包的配置
# 可以使用Logger logger = LoggerFactory.getLogger(Class)的方式记录。


#定义总根
log4j.rootLogger = error, mylog  
### 输出到控制台 ###
log4j.appender.mylog = org.apache.log4j.ConsoleAppender
log4j.appender.mylog.Target = System.out
#经过测试这个在rootLogger的级别上取一个高的级别输出,比如这时候输出INFO以及以上级别
log4j.appender.mylog.Threshold = debug 
log4j.appender.mylog.layout = org.apache.log4j.PatternLayout
log4j.appender.mylog.layout.ConversionPattern = %d{[yyyy/MM/dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n

#定义A模块的根,A也可以写成包名。定义模块名字后只能使用appender后的名字作为getLogger的参数。
#将info,warn.error三个级别分别输出到不同的文件
log4j.logger.A = info , Ainfo , Awarn , Aerror

### 输出A模块Info日志,这里通过filter做了限制,只输出INFO日志,Logger logger = loggerFactory.get
###Logger("Ainfo") 获取logger,只能使用logger.info(),记录其他级别也没法记录到文件

#经过测试这个配置的意思是 要不要继承父(根)的输出方法,比如这里是false就不会再在控制台输出
log4j.additivity.Ainfo=false
log4j.appender.Ainfo = org.apache.log4j.DailyRollingFileAppender
log4j.appender.Ainfo.File = D:/logs/Ainfo.log
log4j.appender.Ainfo.Append = true
#经过测试这个配置的意思是在A的级别和下面配置的级别上取一个高的级别输出,比如这时候输出INFO以及以上级别
log4j.appender.Ainfo.Threshold = INFO
log4j.appender.Ainfo.layout = org.apache.log4j.PatternLayout
log4j.appender.Ainfo.layout.ConversionPattern = %d{[yyyy/MM/dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n
#日志过滤限定
log4j.appender.Ainfo.filter.F1=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.Ainfo.filter.F1.LevelMin=INFO
log4j.appender.Ainfo.filter.F1.LevelMax=INFO

#将A模块的Warn日志保存到一个单独的文件
#经过测试这个配置的意思是 要不要继承父(根)的输出方法,比如这里是true就还会在控制台输出
log4j.additivity.Awarn=true
log4j.appender.Awarn = org.apache.log4j.DailyRollingFileAppender
log4j.appender.Awarn.File = D:/logs/Awarn.log
log4j.appender.Awarn.Append = true
#经过测试这个配置的意思是在A的级别和下面配置的级别上取一个高的级别输出,比如这时候输出INFO以及以上级别
log4j.appender.Awarn.Threshold = INFO
log4j.appender.Awarn.layout = org.apache.log4j.PatternLayout
log4j.appender.Awarn.layout.ConversionPattern = %d{[yyyy/MM/dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n
#日志过滤限定,在上面取的高级别的基础上继续做限定,这里只取了一个WARN级别
log4j.appender.Awarn.filter.F1=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.Awarn.filter.F1.LevelMin=WARN
log4j.appender.Awarn.filter.F1.LevelMax=WARN


#将A模块的Error日志保存到一个单独的文件
#经过测试这个配置的意思是 要不要继承父(根)的输出方法,比如这里是true就还会在控制台输出
log4j.additivity.Aerror=true
log4j.appender.Aerror = org.apache.log4j.DailyRollingFileAppender
log4j.appender.Aerror.File = D:/logs/Aerror.log
log4j.appender.Aerror.Append = true
#经过测试这个配置的意思是在A的级别和下面配置的级别上取一个高的级别输出,比如这时候输出INFO以及以上级别
log4j.appender.Aerror.Threshold = INFO
log4j.appender.Aerror.layout = org.apache.log4j.PatternLayout
log4j.appender.Aerror.layout.ConversionPattern = %d{[yyyy/MM/dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n
#日志过滤限定,在上面取的高级别的基础上继续做限定,这里只取了一个Error级别
log4j.appender.Aerror.filter.F1=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.Aerror.filter.F1.LevelMin=ERROR
log4j.appender.Aerror.filter.F1.LevelMax=ERROR

#自定义包配置
log4j.logger.com.iscas.test.log4j.package1 = info , package1Error

log4j.additivity.package1Error=true
log4j.appender.package1Error = org.apache.log4j.DailyRollingFileAppender
log4j.appender.package1Error.File = D:/logs/package1error.log
log4j.appender.package1Error.Append = true
log4j.appender.package1Error.Threshold = INFO
log4j.appender.package1Error.layout = org.apache.log4j.PatternLayout
log4j.appender.package1Error.layout.ConversionPattern = %d{[yyyy/MM/dd HH:mm:ss,SSS]} [%5p] [%c:%L] - %m%n
log4j.appender.package1Error.filter.F1=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.package1Error.filter.F1.LevelMin=ERROR
log4j.appender.package1Error.filter.F1.LevelMax=ERROR

猜你喜欢

转载自blog.csdn.net/u011943534/article/details/80779092
今日推荐