log4j 1
来源:互联网 发布:软件系统集成方案模板 编辑:程序博客网 时间:2024/06/18 07:34
log4j 1官网:http://logging.apache.org/log4j/1.2/
文档:http://logging.apache.org/log4j/1.2/manual.html
Loggers, Appenders and Layouts
Log4j有三个主要组成部分:loggers, appenders和layouts。这三类组件组合起来就能是开发者根据信息类型和等级记录日志,能够在运行时控制这些信息的格式,打印到哪去。
Logger hierarchy
任何的日志API比起普通的sysout的最重要的好处是,他们能够显示一部分,隐藏一部分。用户可以根据自己的需要定义日志空间。以前需要用户选择目录作为包的最主要的概念。但是,从1.2版本开始,Logger类代替了Category类。
Loggers用实体命名。Logger名称都是大小写敏感的,并且遵循命名等级规则:
Named Hierarchy
一个logger是另个logger的祖先,只有他的名字是另一个名字的前缀。一个logger是另一个logger的双亲,只要他们之间没有其他的祖先。
例如,一个logger的名称是“com.foo”,是另一个logger,名称为“com.foo.Bar”的双亲。相似的,“java”是“java.util”的双亲,是“java.util.Vector”的祖先。大多数程序员应该对这种命名模式熟悉。
根logger位于logger等级的顶点。他有两点独特的地方:
- 他始终存在,
- 不能根据名称获取。
调用类的静态方法Logger.getRootLogger
能获取他。其他所有的loggers能够通过静态方法Logger.getLogger
实例化和获取。这个方法用logger的名称作为参数。Logger中的一些基本的方法列在下面:
package org.apache.log4j; public class Logger { // Creation & retrieval methods: public static Logger getRootLogger(); public static Logger getLogger(String name); // printing methods: public void trace(Object message); public void debug(Object message); public void info(Object message); public void warn(Object message); public void error(Object message); public void fatal(Object message); // generic printing method: public void log(Level l, Object message);}
可以给Loggers设置等级。可能的等级是:
TRACE,DEBUG,INFO,WARN,ERROR andFATAL
都定义在org.apache.log4j.Level
类中。我们不鼓励,但是你可以定义自己的等级,通过继承Level
类。后面会介绍一个比较好的方法。
如果给定了一个logger没有指定等级,那么它会从它最近的祖先继承他的等级。正式的说:
Level Inheritance
给定一个logger C,他继承的等级是,他的祖先的第一个不是null的等级,从C开始往上一直到root logger。
(省略。。。)
Appenders and Layouts
能够选择性地使用日志只是一部分。Log4j允许日志打印到多个目的地。用log4j的话说,打印目的地被称为一个appender。当前,可用的appenders有console、file,GUI组件,远程socket服务,JMS,NT Event Loggers,和远程UNIX Syslog daemons。也可以异步的记录。
一个logger可用有多个appender。
addAppender
方法可以用来给logger添加appender。对于一个logger的每个起作用的logging请求,将会被送到logger的所有的appenders中,还有等级中更高级的appenders中。换句话说,appenders从logger等级中继承,比如C,C和C的子孙日志将会打印到文件和控制台上。
看下图就明白了,一个logger上的日志会打印到它自己和它祖先的appenders上。如果logger的additivity flag设置为false,就不往上打印了(这个包含)。
(省略。。。)
# Set root logger level to DEBUG and its only appender to A1.log4j.rootLogger=DEBUG, A1# A1 is set to be a ConsoleAppender.log4j.appender.A1=org.apache.log4j.ConsoleAppender# A1 uses PatternLayout.log4j.appender.A1.layout=org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
第一行的意思是:将rootLogger的等级设为DEBUG,它的appender为A1。
- log4j 1
- 【log4j】【1】maven配置log4j
- Log4j Study (1)
- log4j备忘(1)
- log4j学习笔记(1)
- 1-Log4j使用详解
- websphere6.1 and log4j
- 1、 Log4j是什么
- log4j 集锦 1
- log4j使用(1)
- 配置Log4J (1)
- Log4j用法汇总-1
- 1-log4j 的使用
- apache log4j(1)
- Log4j学习(1)
- log4j深入研究(1)
- log4j 详解1
- log4j-总结-1
- 16进制文本文件转二进制文件(C语言)
- UE4 获得player id
- 海明纠错码
- Java Web提交任务到Spark Standalone集群并监控
- js计算字节长度
- log4j 1
- mvn 打包命令
- linker command failed with exit code 1 错误
- 一些小程序的个人总结(1)
- Netty实战读书笔记(第七章)
- JS——取整
- 条款08:别让异常逃离析构函数
- MyBatis知识盘点【贰】_MyBatis组件概览
- .net利用npoi读取本地文件excel文件