log4j 配置文件详解

记下依赖包

  
    org.slf4j  
    slf4j-api  
    1.6.6  
  

  
    org.slf4j  
    slf4j-log4j12  
    1.6.6  
  

  
    log4j  
    log4j  
    1.2.16  
 

log4j 有三个核心功能

  • 日志信息的优先级
  • 日志信息的输出目的地
  • 日志输出的格式

而使用配置文件不仅会减轻工作量,而且可以使程序更加灵活

定义配置文件主要有两种方式

  • 使用 Java 的特性文件,即右键工程名 new 一个名为 log4j.properties 的文件

这个文件不同的 IDE,不同的项目放在不同的地方,有人说 src 同级, 也有人说
在 src/main/java 下,还有人说放在 src/main/resource。具体对象,具体讨论

  • 使用 xml 文件,具体怎么配置,我还没有试过。

语法

1.根类别(在类别层次的顶部,即全局性的日志级别)
配置根 Logger

log4j.rootLogger = [ level ], appenderName, appenderName,...
  • level 是日志记录的类别
    从高到低依次排序
关键字 用途
OFF 最高级别,关闭所有日志
FATAL 每个错误事件将会导致退出应用程序,这个时候可以停止应用程序了
ERROR 虽然发生错误事件,但是不影响系统的继续运行。打印错误异常和信息,如果不需要打印太多,可以使用这个级别
WARN 会出现潜在错误信息,有些信息不是错误信息,但是需要给程序员一些提示
INFO 消息在粗粒度级别上突出强调应用程序的运行过程,打印一些感兴趣或者重要的信息。这个可以用于生产环境中输出程序的一些重要信息,但是不能滥用
DEBUG 指出细粒度事件对于调试还是费城有帮助的,主要打印一些在开发过程中打印一些运行信息
TRACE 很低级别的日志,一般不会用
ALL 级别最低,打印所有日志

log4j 推荐只使用 ERROR, WARN, INFO, DEBUG

通过定义级别,只有比这个高的级别可以打印出来

  • appenderName 指定日志发送到哪个地方,可以同时指定多个输出地

例如:

log4j.rootLogger=INFO,stdout,Runlog,Errorlog

DEBUG 级别日志将会被屏蔽,输出的目的地有三个, stdout 、Runlog 和 Errorlog

2.配置日志的目的地

  • log4j.appender.appenderName = fully.qualified.name.of.appender.class

fully.qualifled.name.of.appender.class 是你日志发送目的地的类型
样式是:org.apache.log4j.XXXXXX

这里说几个常用的

XXXXXX 类型 实际使用
ConsoleAppender 控制台
FileAppender 文件
DailyRollingFileAppender 每天产生一个文件 当天之后日志文件就会被以xxx+昨天的日期来命名,也就是每天一个日志文件
RollingFileAppender 文件到达指定大小产生一个新文件 当日志文件到底指定尺寸时,那么原来的日志文件将会被加上序号,例如xxx.1,值得注意的是,若是再超过指定尺寸(MaxFileSize)需要增加一个日志文件时,那么原来xxx.1的文件会加上1变成xxx.2。也就是说,数字越大的日志文件记录的日志时间越早!
WriterAppender 将日志以流的形式发送到任意指定地方 ConsoleAppender和FileAppender的父类,一般不直接使用,而是会使用其子类,如ConsoleAppender
net.SMTPAppender 邮件
jdbc.JDBCAppender 数据库

还有一些:GUI组件,套接口服务器,NT 时间记录器,UNIX Syslog 守护进程等。

3.常用的输出格式

格式 意义
-X号 X 信息输出是左对齐
%p 日志输出信息级别
%d{} 日志信息产生的信息
%c 日志信息产生的所在类名
%m 日志产生的具体信息
%n 输出日志信息换行

例如:
这个我相信不解释大家也能看得懂

log4j.appender.stdout.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n 
log4j.appender.Runlog.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n 
log4j.appender.Errorlog.layout.ConversionPattern= %5p %d{yyyy-MM-dd HH:mm:ss} %c %m %n

4.布局
log4j 提供四种布局

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

例如:

log4j.appender.stdout.layout=org.apache.log4j.HTMLLayout

这里给大家推荐一篇非常好的博客
Log4j扩展使用--输出地Appender

参考资料:
log4j的8个日志级别(OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、 ALL)
Log4j输出终端(Appender)详解

你可能感兴趣的:(log4j 配置文件详解)