您好,欢迎来到化拓教育网。
搜索
您的当前位置:首页深入浅出+Log4j

深入浅出+Log4j

来源:化拓教育网
一. 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日志文件,在工程下

七. 关于性能的影响

八. 其他

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo9.cn 版权所有 赣ICP备2023008801号-1

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务