1、Log4J主要由以下3大组件构成:
(1)Logger:负责生成日志,并能够对日志信息进行分类筛选
一个Logger可以有多个Appender,这表示日志可以同时输出到多个设备上,并且每个Appender都对应一种Layout(决定日
志信息的格式)。
(2)Appender:定义了日志信息输出的目的地,指定日志信息应该被输出到什么地方,这些地方可以是控制台、文件和网络设备等。
Appender支持将日志信息输出到以下目的地:控制台(Console)、文件(File),GUI组件(GUI component)、远程套接
字服务器(Remote socket server)、NT的事件记录器(NT Event Logger)、远程UNIX Syslog守护进程(Remote UNI)
(3)Layout:指定日志信息的输出格式,它有以下几种类型:
2、log4j分五种日志级别:DEBUG、INFO、WARN、ERROR、FAITAL(低到高)
3、配置Logger组件
(1)配置root Logger,则语法为
log4j.rootLogger = [priority],appenderName,appenderName,...
(2)配置自己的Logger组件,则语法为
log4j.logger.loggerName=[priority],appenderName,appenderName,...
其中,priority是日志级别,可选值包括OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL
4、配置Appender组件,语法如下:
log4j.appender.appenderName=fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1=value1
...
log4j.appender.appenderName.optionN=ValueN
Log4j提供的Appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender()文件
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息作为数据流发送到任意指定的地方)
5、配置Layout组件,语法如下:
log4j.appender.appenderName.layout = full.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1=value1
...
log4j.appender.appenderName.layout.optionN=valueN
log4j提供的Layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),PatternLayout可以依照ConversionPattern去定义输出格式
org.apache.log4j.SimpleLayout(仅输出日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程和类别等信息)
6、读取配置文件,配置log4j环境
配置log4j环境,有以下3种方法
BasicConfigurator.configure():自动快速地使用默认Log4j环境
PropertyConfigurator.configure(String configFilname):读取使用Java属性格式的配置文件并配置Log4j环境
DOMConfigurator.configure(String filename):读取XML形式的配置文件并配置Log4j环境。
7、获取日志记录器
Logger rootLogger = Logger.getRootLogger();//获取rootLogger
Logger myLogger = Logger.getLogger("myLogger");