使用Log4j记录系统日志
l
What is Log4j?
Log4j是Apache的开源项目,可以方便地控制日志信息输送到各种目的地,包括控制台,日志文件等,还可以精确控制每一条日志的输出格式.
l
Why use Log4j?
传统的日志思想就在代码中书写System.out.println()来记录日志,这种方式既单调,又降低系统性能,而使用Log4j能很好的解决这个问题.
l
How to use Log4J?
1. 下载并导入类定义包(不用多介绍了吧)
下载地址:
解压后,jar包在/dist/lib目录
2. 创建log4j.properties文件(怎么创建请看下面)
3. 使用log4j
l 获取Logger, 语法:
public static Logger getLogger(String name)
public static Logger getLogger(Class name)
Eg: Logger logger = Logger.getLogger(Test.class);
//这一句一般放在类的最开始处,以类名为日志器命名
l 通过获取的Logger记录日志信息
Eg:
logger.debug(“Debug message”);
logger.error(“Error message”);
logger.Fatal(“Fatal message”);
创建
Log4j
配置文件
Log4j配置文件的基本格式
//配置根Logger
log4j.rootLogger = [ Level ] , appenderName1 , appendName2 , ...
//配置日志信息输出目的地Appender
log4j.appender.appendername = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
...
log4j.appender.appenderName.optionN = valueN
//配置日志信息的格式 Layout
log4j.appender.appendername.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.option1 = value1
...
log4j.appender.appenderName.optionN = valueN
输出级别
一共5级
l FATAL
l ERROR
l WARN
l INFO
l DEBUG
Log4j只建议使用ERROR,WARN,INFO,DEBUG,优先级如下
DEBUG < INFO < WARN < ERROR < FATAL
输出目的
Appender为日志输出地
org.apache.log4j.ConsoleAppender
|
输出到控制台
|
org.apache.log4j.FileAppender
|
输出到文件
|
org.apache.log4j.DailyRollingFileAppender
|
输出到文件,
每天产生一个日志文件
|
org.apache.log4j.RollingFileAppender
|
输出到文件,
当文件达到指定大小的时候产生一个新的文件
|
org.apache.log4j.WriterAppender
|
以流格式发送到任意指定的地方
|
输出样式
org.apache.log4j.HTMLLayout
|
HTML
表格形式布局
|
org.apache.log4j.PatternLayout
|
该格式可以灵活的指定布局样式
|
org.apache.log4j.SimpleLayout
|
该格式包含日志信息的级别和信息字符串
|
org.apache.log4j.TTCCLayout
|
该格式包含日志产生的时间,
线程,
类别等信息
|
打印参数
Log4j采用类似C语言中的printf函数格式化日志信息
%m
|
输出代码中的指定消息
|
%p
|
输出优先级,
即DEBUG INFO WARN ERROR FATAL
|
%r
|
输出自项目启动到输出该log
信息耗费的毫秒数
|
%c
|
输出所属的类目
|
%t
|
输出产生该日志事件的线程名
|
%n
|
一个换行符
|
%d
|
输出日志时间点的日期或时间,
默认格式为ISO861
|
%l
|
输出日志事件的发生位置,
包括类目名,
发生的线程,
以及在代码中的行数
|
Eg:
<!—以INFO级别输出到控制台-->
log4j.rootLogger=INFO,console
log4j.appender.console= org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.SimpleLayout
Eg2:
<!—增加日志文件输出-->
log4j.rootLogger=INFO,console,file
log4j.rootLogger=INFO,console,file
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.SimpleLayout
log4j.appender.console.layout=org.apache.log4j.SimpleLayout
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.layout=org.apache.log4j.HTMLLayout
log4j.appender.file.file=login3log.html
<!—-指定日志文件-->
log4j.appender.file.layout=org.apache.log4j.HTMLLayout
log4j.appender.file.file=login3log.html
<!—-指定日志文件-->