一. Log4j的作用?
在开发阶段,Log4j用于发现程序的问题,排错。 在产品阶段,Log4j用于记录程序运行的状况。
与System.out.println的比较: System.out.println 不能在运行时打开或者关闭 不能选择包或者类 只能输出文本信息 不能改变输出的位置 Log4j 能设置应用Log4j的条件,条件为真,启用log4j 采用“级别”特性,能针对不同的包或者类,来决定是否输出相应的log4j记录 能选择输出格式,如html, 文本信息 等 能设置输出特性,调整log4j输出到终端或者文本,或者两者都写入log4j日志。 经比较 Log4j优于system.out.pringln。
二. Log4j的安装与下载 1. 官方下载地址: http://logging.apache.org/log4j/1.2/download.html 2. 解压文件: 核心包----log4j-1.2.15.jar 需导入工程 配置文件--examples/sort1.properties(更名后-> log4j.properties)需导入工程
三.例子 1. 新建java工程, 导入核心包 log4j-1.2.15.jar 2. 在src下, 手写配置文件log4j.properties 用于对log4j日志的输出设置属性。 配置内容(每个配置都须对Logger, appender, layout设置值):
log4j.rootLogger=debug, appender1
log4j.appender.appender1=org.apache.log4j.ConsoleAppender log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout 图:
3. 建HelloLog4j的类 package com.v512.log4j;
import org.apache.log4j.Logger; public class HelloLog4j {
// 传当前类HelloLog4j的对象,给Log4j的logger对象,用于对该类进行日志的
记录。
private static Logger logger = Logger.getLogger(HelloLog4j.class);
}
public static void main(String[] args) { }
// 记录信息.
logger.debug(\"This is debug message.\"); logger.info(\"This is info message.\"); logger.error(\"This is error message.\");
建好运行,输出结果:[main] DEBUG com.v512.log4j.HelloLog4j - This is debug message.
[main] INFO com.v512.log4j.HelloLog4j - This is info message. [main] ERROR com.v512.log4j.HelloLog4j - This is error message.
四.例子讲解
Log4j核心包含 Logger, Appender, Layout, 配置文件. Logger : 分级别地完成日志信息的处理 Appender : 设置日志信息的去向 Layout : 设置日志信息的输出样式
配置文件: log4j.properties或者 log4j.xml
1. Logger输出信息的优先级别: All < TRACE < DEBUG < INFO < WARN < ERROR < FATAL < OFF
在配置文件中设置的级别只有 低于或等于 类中记录信息的级别才能在输出结果
中打印相应的信息。 在上面的例子中(log4j.rootLogger=debug, appender1) 配置文件的级别为DEBUG, 都低于 类中各记录信息(logger.debug, logger.info, logger.error)的级别, 故输出三条。
2. Appender 指定信息输出到哪。
例子的配置文件中:
(log4j.appender.appender1=org.apache.log4j.ConsoleAppender) 设定了一个appender1, 为输出日志到 控制台。
3. Layout 设置日志信息的输出样式
例子中的配置文件
(log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout) 表示终端输出样式。
3.1 深入 PatternLayout
举个例子:
log4j.rootLogger=debug,appender2
log4j.appender.appender2=org.apache.log4j.ConsoleAppender
log4j.appender.appender2.layout=org.apache.log4j.PatternLayout log4j.appender.appender2.layout.ConversionPattern=%r [%t] %p - %c
- %l - %m%n
例子意思为: 定义一个appender2, 它输出到终端(Console), 采用PatternLayout,并设置了输出的格式为”%r [%t] %p - %c - %l - %m%n”, 实际输出结果:0 [main] ERROR
-com.v512.log4j.HelloLog4j-com.v512.log4j.HelloLog4j.main(HelloLog4j.java:16) - This is error message.
五. 深入 Log4j配置
1. 日志输出到文件 配置Log4j.properties文件:
# 设置根级别为 debug
log4j.rootLogger=debug,appender2
# 日志输出到C:/demolog4j.htm
log4j.appender.appender2=org.apache.log4j.FileAppender log4j.appender.appender2.File=d:/demolog4j.htm
# 样式为html
log4j.appender.appender2.layout=org.apache.log4j.HTMLLayout
在d:/下生成demolog4j.htm文件 ,打开为
六. Log4j.xml文件配置
xmlns:log4j=\"http://jakarta.apache.org/log4j/\"> class=\"org.apache.log4j.RollingFileAppender\">
生成的html日志文件,在工程下
七. 关于性能的影响
。
八. 其他