log4j常用配置说明

日志输出级别(Level)

  • ERROR    # 错误
  • WARN    # 一般警告
  • INFO    # 程序提示信息
  • DEBUG    # 程序调试信息

配置日志信息输出目的地(Appender)

log4j.appender.{appenderName}={appender}

appender取值如下

  • org.apache.log4j.ConsoleAppender(控制台)
  • org.apache.log4j.FileAppender(文件)
  • org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
  • org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
  • org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

ConsoleAppender选项

Threshold=DEBUG    # 指定日志消息的输出最低层次。
ImmediateFlush=true    # 所有的消息是否会被立即输出,默认值是true。
Target=System.err    # 指定输出控制台,默认值是System.out。

FileAppender 选项

Threshold=DEBUG    # 指定日志消息的输出最低层次。
ImmediateFlush=true    # 所有的消息是否会被立即输出,默认值是true。
File=log.txt    # 指定消息输出到log.txt文件。
Append=false    # true表示将消息增加到指定文件中,false表示将消息覆盖指定的文件内容,默认值是true。

RollingFileAppender 选项

Threshold=DEBUG    # 指定日志消息的输出最低层次。
ImmediateFlush=true    # 所有的消息是否会被立即输出,默认值是true
File=log.txt    # 指定消息输出到log.txt文件。
Append=false    # true表示将消息增加到指定文件中,false表示将消息覆盖指定的文件内容,默认值是true。
MaxFileSize=2MB    # 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到log.log.1文件。
MaxBackupIndex=4    # 指定可以产生的滚动文件的最大数。

配置日志信息的格式(Layout)

log4j.appender.{appenderName}.layout={layout}

layout取值如下

  1. org.apache.log4j.HTMLLayout(以HTML表格形式布局)
  2. org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
  3. org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
  4. org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)

org.apache.log4j.PatternLayout选项

log4j.appender.stdout.layout.ConversionPattern={pattern}

pattern组成部分

%m 输出代码中指定的消息

%p 输出日志级别,即DEBUG,INFO,WARN,ERROR,FATAL

%r 输出自应用启动到输出该log信息耗费的毫秒数

%c 输出所属的类目,通常就是所在类的全名

%t 输出产生该日志事件的线程名

%n 输出一个回车换行符,Windows平台为“rn”,Unix平台为“n”

%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921

%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。

Level和Appender映射

log4j.rootLogger = [level],appenderName,appenderName2,...、

此配置表示什么level的日志要输出到什么appender,如下示例

log4j.rootLogger=DEBUG,D,E    # 将DEBUG级别日志输出到name为D,E的appender中

log4j.rootLogger=INFO,I   # 将DEBUG级别日志输出到name为I的appender中

一个示例

log4j.rootLogger=DEBUG,D,E

log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/logs.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
log4j.appender.E.File = logs/error.log
log4j.appender.E.Append = true
log4j.appender.E.Threshold = ERROR
log4j.appender.E.layout = org.apache.log4j.PatternLayout
log4j.appender.E.layout.ConversionPattern = %d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
原文地址:https://www.cnblogs.com/seastar1989/p/7651022.html