log4j教程
log4j技术
log4j案例
Log4j2技术
log42j案例
Logback技术
Logback案例

log4j日志输出控制文件分析

日志属性文件log4j.properties是专门用于控制日志输出的。其主要进行三方面控制:

  • 输出位置:控制日志将要输出的位置,是控制台还是文件等。
  • 输出布局:控制日志信息的显示形式。
  • 输出级别:控制要输出的日志级别。

日志属性文件由两个对象组成:日志附加器与根日志。

根日志:即为java代码中的日志记录器,其主要由两个属性构成:日志输出级别与日志附加器。

日志附加器,则由日志输出位置定义,由其它很多属性进行修饰,如输出布局、文件位置、文件大小等。

配置模式:appenderName是用户自定义

log4j.appender.appenderName=ClassName

log4j.appender.appenderName.Option1=value1

log4j.appender.appenderName.Option2=value2

log4j.appender.appenderName.OptionN=valueN

1 定义日志附加器appender

所谓日志附加器,就是为日志记录器附加上很多其它设置信息。附加器的本质是一个接口,其定义语法为:log4j.appender.appenderName=输出位置。

AppenderName为自定义名称.

输出位置为log4j指定的类型,是定义好的一些appender接口的实现类。

例如定义了一个名称为console的控制台附加器

log4j.appender.console= org.apache.log4j.ConsoleAppender

常用的附加器实现类如下:

  • org.apache.log4j.ConsoleAppender:日志输出到控制台
  • org.apache.log4j.FileAppender:日志输出到文件
  • org.apache.log4.RollingFileAppender:当日志文件大小达到指定大小的时候将产生一个新的日志文件。
  • org.apache.log4j.DailyRollingFileAppender:每天产生一个日志文件

2 修饰日志附加器

所谓修饰日志附加器,就是为定义好的附加器添加一些属性,以控制到指定位置的输出。不同的附加器,其修饰属性不同。

控制台附加器

Target:控制输出到控制台的使用目标。其值为System.out或System.err。它们的区别是:System.out是以黑色字体显示到控制台,而System.err是以红色字体显示。

文件附加器

File:日志要输出的文件位置及文件名称

滚动文件附加器

MaxFileSize:用于指定日志文件的最大值。如果输出的日志文件大小超过了指定的文件大小,将自动产生另一个日志文件

Log4j常见布局类型:

  • org.apache.log4j.HTMLLayout:网页布局,以HTML表格形式布局
  • org.apache.log4j.SimpleLayout:简单布局,包含日志信息的级别和信息字符串
  • org.apache.log4j.PatternLayout:匹配器布局,可以灵活地指定布局模式。其主要是通过设置PatternLayout的ConversionPattern属性值来控制日志具体输出的格式。

3  配置根Logger

配置rootLogger,以便于代码加载来控制日志的输出。其语法为:

log4j.rootLogger=[level],appenderName1,appenderName2,…

其中,level是日志记录的优先级别,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、TRACE、ALL。Log4j只建议使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。OFF为关闭日志功能。

低级别的可以显示打印出高级别的日志信息,但高级别打印不出低级别的日志信息。所以,级别越高显示的日志信息就越少。