日志记录器(Logger)的行为是分等级的。如下表所示:
分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是 ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。
在这里说明一下,如果 启动程序 出现
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.那么这时候 只要 在 maven 里面 导入
<dependency>
<groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.21</version> </dependency>即可解决,其实可以忽略掉,对我们使用 一般的 log4j 功能没有影响,导入 log4j包即可的。
下面重点来了,是我的配置文件:
log4j.properties 配置文件说明
:
log4j.appender.encoding = UTF-8
#log4j.rootLogger=INFO,CONSOLE,APPLOG,ERROR,ERRORLOG
#log4j.appender.CONSOLE=org.apache.log4j.ConsoleAppender #log4j.appender.CONSOLE.Target=System.out #log4j.appender.CONSOLE.layout=org.apache.log4j.PatternLayout #log4j.appender.CONSOLE.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p [%t] %c %x - %m%n
#log4j.rootLogger=INFO,stdout,debug,info,warn,error
log4j.rootLogger=DEBUG,stdout,debug,info,warn,error#将内容 输出到 控制台,这里 在 log4j.rootLogger 里面必须 加上 INFO 或者 DEBUG 或者 WARN 或者 #ERROR 这些内容, 如果不加上的话, 是不会将内容输出到 控制台的,只会输出到 相应的 文件里面。
# INFO 代表输出 INFO级别以上的, DEBUG就是 DEBUG以上的 。。。
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n#输出 debug 级别以上的内容
log4j.logger.debug=debug log4j.appender.debug=org.apache.log4j.DailyRollingFileAppender log4j.appender.debug.layout=org.apache.log4j.PatternLayout log4j.appender.debug.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n log4j.appender.debug.datePattern='.'yyyy-MM-dd log4j.appender.debug.Threshold = DEBUG log4j.appender.debug.append=true log4j.appender.debug.File=/data/logs/debug.log#输出 info 级别以上的内容
log4j.logger.info=info log4j.appender.info=org.apache.log4j.DailyRollingFileAppender log4j.appender.info.layout=org.apache.log4j.PatternLayout log4j.appender.info.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n log4j.appender.info.datePattern='.'yyyy-MM-dd log4j.appender.info.Threshold = INFO log4j.appender.info.append=true log4j.appender.info.File=/data/logs/info.log
#输出 warn 级别以上的内容
log4j.logger.debug=warn
log4j.appender.warn=org.apache.log4j.DailyRollingFileAppender log4j.appender.warn.layout=org.apache.log4j.PatternLayout log4j.appender.warn.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n log4j.appender.warn.datePattern='.'yyyy-MM-dd log4j.appender.warn.Threshold = WARN log4j.appender.warn.append=true log4j.appender.warn.File=/data/logs/warn.loglog4j.logger.error=error
log4j.appender.error=org.apache.log4j.DailyRollingFileAppender log4j.appender.error.layout=org.apache.log4j.PatternLayout log4j.appender.error.layout.ConversionPattern=[%-5p] [%d{HH:mm:ss}] %c - %m%n log4j.appender.error.datePattern='.'yyyy-MM-dd log4j.appender.error.Threshold = ERROR log4j.appender.error.append=true log4j.appender.error.File=/data/logs/error.log
这样就把不同日志级别的内容输出到 不同的 级别文件里面了。