Log4j是apache的一个开源项目,用来操作程序日志信息的框架。因便于管理,在工程中用来代替System.out打印语句。通过配置Log4j中的log4j.properties,可以指定日志信息的级别,输出地点,输出格式。
LOG4J组成
Log4j有3大主要组件:
- Logger: 记录器,决定什么日志信息应该被输出、什么日志信息应该被忽略。
- Appender: 存放器,指定日志信息应该输出到什么地方,可以是控制台、文件、网络设备。
- Layout: 布局格式,指定日志信息的输出格式。
一个logger可以用多个appender,也就是说日志信息可以同时输出到多个设备上,每个appender对应一种layout。
所以,记录器用来整合日志信息,一个日志信息调整好以后,交给记录器的所有存放器,每一个存放器根据自己的格式输出日志信息。
记录器组件Logger
1、根记录器: rootLogger
配置语法: log4j.rootLogger=[日志级别], 存放器名1, 存放器名2, … , 存放器名N。
日志级别: 级别由高到低依次是: fatal、error、warn、info、debug。
项目中的代码: log4j.rootLogger=INFO, stdout, logfile
根记录器的日志级别是info,所以info, warn, error, fatal均会被执行。stdout, logfile是存放器。
2、在配置文件中配置Logger组件
可在Log4J配置文件中配置自己的Logger组件
项目中代码:
定义了application, service, jdbc, action四个自己的logger组件,并分别配置了级别和存放器。
存放器组件Appender
配置语法:
存放类:
项目中代码:
|
|
|
|
|
|
分别制定了输出文件的存放类、编码方式、文件路径、文件大小。
格式化组件Layout
配置语法:
输出格式类型:
符号 | 描述 |
---|---|
%r |
自程序开始后消耗的毫秒数 |
%t |
表示日志记录请求生成的线程 |
%p |
表示日志语句的优先级 |
%r |
与日志请求相关的类别名称 |
%c |
日志信息所在的类名 |
%m%n |
表示日志信息的内容 |
项目中代码:
以自定义的格式输出日志信息。