- 浏览: 86310 次
- 性别:
- 来自: 重庆&南京
-
文章分类
最新评论
-
934304050:
有没搞错 都是一个视频
AXIS2环境搭建视频教程 -
爪哇夜未眠:
感觉也没写什么东西,但看完以后心里有点难过。。。我是怎么了。。 ...
记念2010。 -
爪哇夜未眠:
看了你全部博客
记念2010。 -
jiewuzhe02:
...
颜色吸取器colorspy -
345161974:
哥们,有QQ号没?我准备去重庆那边找工作了,不晓得怎么样?QQ ...
记念2010。
这是Log4j(版本:log4j-1.2.9)的官方英文文档,打算利用下班时间把它翻译一下,如果有翻译不对的地方,还请各位网友给小弟指出,谢谢大家
Loggers, Appenders and Layouts(记录器,渲染器,样式)
Log4j 有三大组件:Loggers,Appenders and layouts(记录器,渲染器,样式),这三种组件组成在一起使开发人员能够通过日志类型和日志级别来记录日志。并控制日志在运行时显示的格式和显示的位置。
Logger hierarchy (日志层次结构)
任何日记API最主要的优点都是可以控制最简单的System.out.println()显示和不显示,这种实现假定一种空白日志,也就是说,不记录一些日志语句,也就是通过开发者选择的某种标准来记录日志,观察了这种需求后。在以前会我们我们选择Category作为包的核心部分,然而,在log4j 1.2版本以后。Logger 类就已经替代了Category类,但是这些和先前的log4j版本相似。Logger类可以看作是Category类的一个别名。
记录器(Logger)被叫做实体。记录器(Logger)的名字是大小写敏感并且有以下的层次规则:
命名层次
如果一个记录器的名字带有点并且是其它记录器的前缀,那么这个记录器就叫祖先记录器。父记录器是指在一个祖先记录器和子记录器之间不在有其它祖先记录器。
例如,一个叫“com.foo”的记录器是一个“com.foo.Bar”的父记录器,同样地,“java”是一个"java.util"和"java.util.Vector"的祖先。这种命名模式对于大多数程序员来说是熟悉的。
root logger位于所以记录器之上,有二种特性:
1.总是存在
2.不能用名字重新取得
调用Logger.getRootLogger的静态方法得到。其它的记录器用Logger.getLogger静态方法实体化或得到,此方法接收一个想要得到的记录器名字。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 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);
}
可以为记录器指定一个级别,一系列可以指定的级别是定义在org.apache.log4j.Level类中的: DEBUG, INFO, WARN, ERROR and FATAL ,你可以通过继承Leverl类来定义自己的级别,但是我们不鼓励你这么做,我们一会要解释一种更好的方案。
如果一个给定的记录器没有指定级别,他将从最进的祖先继承,更正式地:
日志继承层次:
给定的一个记录器C的通过继承得到的记录级别和第一个不为空的记录器级别相同。 从C开始向上推进一直达到根记录器(root logger)
为了确保所有的记录器都持有一个日志记录级别,那么总是要指定根记录器的日志记录级别。
以下四个表格是通过以上规则列出的各种指定日志级别和继承日志级别
root | Proot | Proot |
X | none | Proot |
X.Y | none | Proot |
X.Y.Z | none | Proot |
上面的例子1中,只有根记录器指定了日志级别,它的值是,Proot,将被记录器X,X.Y和X.Y.Z继承
root | Proot | Proot |
X | Px | Px |
X.Y | Pxy | Pxy |
X.Y.Z | Pxyz | Pxyz |
在例子2中,所有的记录器被指定了一个日志级别,就没有必要继承了。
root | Proot | Proot |
X | Px | Px |
X.Y | none | Px |
X.Y.Z | Pxyz | Pxyz |
在例子3中,根记录器(root),X和X.Y.Z分别指定了记录级别Proot,Px和Pxyz。记录器从X.Y从你记录器X继承日志记录级别
root | Proot | Proot |
X | Px | Px |
X.Y | none | Px |
X.Y.Z | none | Px |
在例子4中,根记录器(root)和X记录器分别被指定了记录器Proot和Px。记录器X.Y和X.Y.Z从他们最近的指定了记录级别的父记录器X继承了这个日志记录级别
日志请求(注:即记录日志)调用记录器实例的打印方法,这些打印方法是:debug,info,warn,error,fatal和log。
更精确的说,打印方法决定了日志的记录级别。例如,如果C是一个记录器实例,那么语句 c.info("...")是一个INFO级别的记录请求。
为了能够记录日志,日志请求级别一定要打于或等于记录器级别,否则,日志不能够记录,如果记录器没有指定日志记录级别,它会按层次继承一个日志记录级别。规律总结如下:
基本选定规则:
日志请求级别为P(指定或继承的都可以)日志记录器级别为Q,如果P>=Q则可以记录日志
这是Log4j的内在规则,这种级别是已经定义好了的,标准的级别是这样的:DEBUG<INFO<WARN<ERROR<FATAL
下面是这种规则的一个例子:
// get a logger instance named "com.foo"
Logger logger = Logger.getLogger("com.foo");
// Now set its level. Normally you do not need to set the
// level of a logger programmatically. This is usually done
// in configuration files.
logger.setLevel(Level.INFO);
Logger barlogger = Logger.getLogger("com.foo.Bar");
// This request is enabled, because WARN >= INFO.
logger.warn("Low fuel level.");
// This request is disabled, because DEBUG < INFO.
logger.debug("Starting search for nearest gas station.");
// The logger instance barlogger, named "com.foo.Bar",
// will inherit its level from the logger named
// "com.foo" Thus, the following request is enabled
// because INFO >= INFO.
barlogger.info("Located nearest gas station.");
// This request is disabled, because DEBUG < INFO.
barlogger.debug("Exiting gas station search");
|
用同一个相同的名字去调用方法getLogger会返回同一个日志对象的引用
例如:
Logger x = Logger.getLogger("wombat");
Logger y = Logger.getLogger("wombat");
|
x和y引用同一个日志(Logger)对象
因此,当你配置一个记录器后就可以在代码的任何地方引用它,而不必到处传递这个对象引用。Log4j记录器与生物上的父在子之前原理相反,你可以在任何地方配置和创建,事实上,父记录器将找到并连接到他的子孙,即便子孙在父记录器之后创建。
配置Log4j的配置是在应用程序初始化的时候,首选的方式是读取一个配置文件,马上将要讨论。
通过Log4j你可以很方便的用软件的组件来给记录器命名,用和类名相同的记录器名,就可以在各个类中静态的建立一个记录器实例,这是一种直接并易用的方式来定义记录器,这样日志就要按照记录器的名字来生成,这种命名策阅很容易定义日志的起源,然而,这只是一种可行的方法,虽然常用,但是Log4j并不限定开发者定义自己的记录器。开发者可以取自己期望的任何一个记录器。
然而,通过类来给命名记录器是到现在最好的一种命名策略。
Appenders and Layouts(渲染器和样式)
让用户能够控制显示或不显示日志只是log4j的一部份功能,log4j把日志输出到不同的地方,用log4j的说法,输出地叫做渲染器(Appender),当前的渲染器有:控制台(console),文件(files),图形组件,远程套节字服务器(remote socket server),JMS,NT Event Loggers,和remote UNIX Syslog daemons,也呆以异步记录日志。
可以为一个记录器指定多个Appender
给一个记录器添加一个Appender的方法是addAppender,一次日志请求会输出到记录器所指定的所有Appender以及层次关系中继承的Appender。
- manual.rar (14.7 KB)
- 下载次数: 36
发表评论
-
深入JVM一(走近JVM)
2010-11-26 21:34 2861一、走近JVM 感觉JVM 这个东西很深澳 ... -
常用东东不断添加
2010-10-13 11:55 8461.让窗口在本页面展示,不跳出一个新窗口 <head ... -
AXIS2环境搭建视频教程
2010-10-05 10:08 3635这是小弟09年录制的教程,今天不怕被大家笑话,上传上来供有需要 ... -
Android ListView 控件学习
2010-07-30 11:13 27401.创建Activity package com.coo ... -
Android ProgressBar 进度条
2010-07-30 09:56 2455截图如下: package com.coolbi; ... -
一本不错的CSS chm格式的手册
2010-07-29 15:50 858截图如下: -
Android Activity生命周期总结
2010-07-29 09:41 1728Android操作系统以一个stack的形式来管理activi ... -
Ruby自学笔记3
2010-02-24 14:29 11139.正则表达式 正则表达式以/开始/结束 +:一个或多 ... -
ruby笔记1
2009-10-20 10:10 852学习笔记 1】定义方法: 以关键字def开头end结束, ... -
模拟Spring装载bean的方式
2009-08-05 12:19 1247Spring有一个ClassPathXmlApplicatio ... -
100多个很有用的JavaScript函数以及基础写法大集合
2009-07-17 09:45 9271.document.write(""); ... -
进期学习计划
2009-07-17 09:07 876进期学习计划: 深入的学习一下FLEX 学习JQUREY ... -
视频:SUSE Linux 9.x 和10.x上安装ORACLE9i数据库《版本2》
2009-05-06 08:42 1382这次在上次的基础上改掉了一些错误的地方。增加了关于linux ... -
getting_started_with_Flex3
2009-04-22 17:11 841最近学习FLEX,这本书不错。官方网站的。推荐给大家。 喜欢 ... -
linux中忘记root密码
2009-04-06 19:36 878以单用户模式登陆: Grub引导装载程序时 键入 “e“进入编 ... -
SUSE Linux 9.x 和10.x上安装ORACLE9i.pdf
2009-04-04 16:15 1650最近公司搬到新环境,我们项目小组没有ORACLE环境。公司一直 ... -
Installation of Oracle 9i (R2) on SUSE LINUX 9_1
2009-04-02 16:51 1966Installation of Oracle 9i (R2) ... -
linux下挂载U盘等设备
2009-01-27 21:14 2911今天介绍一下如何在linux中挂载U盘设备文件: mount命 ... -
FLEX学习笔记1
2008-11-24 21:32 934最近开始学习FLEX,做好笔记 FLEX之helloworld ... -
(转)jQuery使用手册
2008-05-22 16:48 1366翻译整理:Young.J官方网站:http://jquery. ...
相关推荐
log4j配置文档log4j配置文档log4j配置文档log4j配置文档log4j配置文档log4j配置文档log4j配置文档log4j配置文档log4j配置文档log4j配置文档log4j配置文档log4j配置文档
下面我们将从配置文件类型、核心JAR包、文件渲染和Log调用四个方面来比较Log4j和Log4j2的区别。 配置文件类型 Log4j通过一个.properties文件作为主配置文件,而Log4j2则弃用了这种方式,采用的是.xml、.json或者....
《深入理解log4j:文档与实践》 在Java编程中,日志记录是不可或缺的一部分,它有助于开发者追踪程序运行状态,排查错误,优化性能。Log4j作为一款广泛使用的开源日志框架,因其高效、灵活的特性而备受青睐。本文将...
Log4J文档.doc Log4J文档.doc Log4J文档.doc Log4J文档.doc
包含翻译后的API文档:log4j-api-2.17.1-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.logging.log4j:log4j-api:2.17.1; 标签:apache、logging、api、log4j、jar包、java、中文文档; 使用方法:...
Log4j是一个广泛使用的Java日志记录框架,它允许开发者在应用程序中轻松地记录各种级别的日志信息,如DEBUG、INFO、WARN、ERROR等。在2021年底,一个重大的安全漏洞(CVE-2021-44228)被发现在Log4j2的早期版本中,...
包含翻译后的API文档:log4j-to-slf4j-2.17.1-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.logging.log4j:log4j-to-slf4j:2.17.1; 标签:apache、slf4j、logging、log4j、jar包、java、中文文档; ...
使用Log4J进行日志操作
针对Log4j 2 远程代码执行漏洞,需要用到的升级资源包,适用于maven资源库,包括log4j,log4j-core,log4j-api,log4j-1.2-api,log4j-jpa等全套2.15.0 maven资源库jar包。如果是maven本地仓库使用,需要将zip包解压...
分别有disruptor-3.3.4.jar(Log4j2异步日志的底层实现)、log4j-api-2.19.0.jar(log4j门面)、log4j-core-2.19.0.jar(log4j实现)、log4j-slf4j-impl-2.19.0.jar(SLF4J与Log4j绑定)、slf4j-api-1.7.30.jar(SLF...
包含翻译后的API文档:log4j-api-2.12.1-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.logging.log4j:log4j-api:2.12.1; 标签:apache、logging、log4j、api、中文文档、jar包、java; 使用方法:...
包含翻译后的API文档:log4j-over-slf4j-1.7.33-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.slf4j:log4j-over-slf4j:1.7.33; 标签:over、slf4j、log4j、jar包、java、中文文档; 使用方法:解压翻译后的...
apache-log4j-1.2.15.jar, apache-log4j-extras-1.0.jar, apache-log4j-extras-1.1.jar, apache-log4j.jar, log4j-1.2-api-2.0.2-javadoc.jar, log4j-1.2-api-2.0.2-sources.jar, log4j-1.2-api-2.0.2.jar, log4j-...
### Log4j2简介 Log4j2是Apache软件基金会推出的日志框架,它是Log4j 1.x的重构版本,旨在提供更为高效且灵活的日志解决方案。与Log4j 1.x相比,Log4j2在设计上进行了重大改进,并解决了Logback等其他日志框架中...
包含翻译后的API文档:log4j-slf4j-impl-2.17.1-javadoc-API文档-中文(简体)-英语-对照版.zip; Maven坐标:org.apache.logging.log4j:log4j-slf4j-impl:2.17.1; 标签:apache、logging、log4j、slf4j、impl、中英...
包含翻译后的API文档:log4j-to-slf4j-2.12.1-javadoc-API文档-中文(简体)版.zip; Maven坐标:org.apache.logging.log4j:log4j-to-slf4j:2.12.1; 标签:apache、logging、log4j、slf4j、中文文档、jar包、java; ...
本文将深入探讨Log4j的帮助文档及实例,帮助你更好地理解和应用Log4j。** **一、Log4j简介** Log4j是一个开源的日志记录工具,最初由Ceki Gülcü设计。它的主要目标是为Java应用程序提供灵活、高效和可配置的日志...