Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4489444
  • 博文数量: 192
  • 博客积分: 10014
  • 博客等级: 上将
  • 技术积分: 8232
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-21 00:22
文章分类

全部博文(192)

文章存档

2011年(4)

2009年(14)

2008年(174)

我的朋友

分类: Java

2008-06-20 16:49:55

Log4j 浅谈
---V.1.0
最新动态请留意
内容为个人整理,仅供学习使用,如有雷同,就是巧合
由于本人也是初学者,内容难免有理解上的错误,欢迎指导更正!
可以通过联系
有人说开源盛世,那就公开咯!
作者:潘成文

目录
What is Log4j
Log4j 是一个日志操作包,指明日志存放位置,和日志存放格式,定义日志信息级别,这些
功能可以进行灵活配置
Three component of Log4j
1
记录器
(logger)
决定日志的最终输出权,是 Log4j 的核心组件
常用的方法
// 基本级别,越下面表示越严重
// 当级别>=所设级别时,它以上的级别才被执行,否则忽略
myLogger.debug("debug");
myLogger.info("info");
myLogger.warn("warn");
myLogger.fatal("fatal");
//打印当前设置的级别
myLogger.log(level, "log");
组件继承
#配置logger的超类rootlogger
log4j.rootLogger=INFO,console
#定义logger组件
log4j.logger.myLogger=INFO

#定义logger组件的继承组件,并指明在显示那里
log4j.logger.myLogger.mySonLogger=,file
注意:
细心留意起名的层次关系
2
寄存器
(appender)
决定日志输出的位置,包括:控制台,文件,网络设备
配置日志信息输出目的地
#在控制台输出结果
log4j.appender.console=org.apache.log4j.ConsoleAppender
#配置日志输出目的地
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=log.html
Log4J 提供的 Appender 有以下几种
org.apache.log4j.ConsoleAppender(控制台);
org.apache.log4j.FileAppender(文件);
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件);
org.apache.log4j.RollingFileAppender(文件大小到指定尺寸产生一个新的文件);
org.apache.log4j.WriteAppender(将日志信息以流格式发送到任意指定地方);
3
布局器
(layout)
日志的输出格式
详细例子分析
在工程中导入 log4j-x.x.jar 包
log4j.properties
##配置logger组件##
#配置logger的超类rootlogger
log4j.rootLogger=INFO,console
#定义logger组件
log4j.logger.myLogger=INFO
#定义logger组件的继承组件,并指明在显示那里
log4j.logger.myLogger.mySonLogger=,file

##appender##
#在控制台输出结果
log4j.appender.console=org.apache.log4j.ConsoleAppender
#配置日志输出目的地
log4j.appender.file=org.apache.log4j.FileAppender
log4j.appender.file.File=log.html
##layout##
#配置控制台上的显示形式
log4j.appender.console.layout=org.apache.log4j.SimpleLayout
#配置文件中的显示开式
log4j.appender.file.layout=org.apache.log4j.HTMLLayout
Text.java
import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;
public class Text {
public static void main(String[] args) {
//指明属性配置器的位置
PropertyConfigurator.configure("src/config/log4j.properties");
//定义记录器
Logger myLogger = Logger.getLogger("myLogger");
Logger mySonLogger = Logger.getLogger("mySonLogger");
//打印不同级别的信息
myLogger.debug("小case");
myLogger.info("有问题");
myLogger.warn("注意下");
myLogger.fatal("很严重");
}
}
执行结果:
INFO - 有问题
WARN - 注意下
FATAL - 很严重
还可以不用配置文件
TextLog4j_2.java
import java.io.IOException;
import org.apache.log4j.Appender;
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.FileAppender;
import org.apache.log4j.HTMLLayout;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
public class TextLog4j_2 {
public static void main(String[] args) {
//指明日志存放位置

String filePath = "teadf.html";
// 1 实例logger对象
Logger myLogger = Logger.getLogger(TextLog4j_2.class.getName());
// 2 日志信息级别
Level level = Level.toLevel("INFO");
myLogger.setLevel(level);
// 3 实例一个layout对象
PatternLayout layout = new PatternLayout();
layout.setConversionPattern("[%t] %-5p %c %m%n");
HTMLLayout htmlLayout = new HTMLLayout();
// 4 实例appender对象
FileAppender file = null;
ConsoleAppender console =null;
try {
//true为迭加日志
file = new FileAppender(htmlLayout,filePath,true);
console = new ConsoleAppender(layout);
} catch (IOException e) {
e.printStackTrace();
}
// 5 将appender添加到logger中
myLogger.addAppender(file);
myLogger.addAppender(console);
// 6 运行
myLogger.debug("debug");
myLogger.info("info");
myLogger.warn("warn");
myLogger.fatal("fatal");
//打印当前设置的级别
myLogger.log(level, "log");
}
}
结果:
[main] INFO text.TextLog4j_2 info
[main] WARN text.TextLog4j_2 warn
[main] FATAL text.TextLog4j_2 fatal
[main] INFO text.TextLog4j_2 log
参考资料:
课件
阅读(762) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~