- 浏览: 172708 次
- 性别:
- 来自: 深圳
文章分类
最新评论
-
pointdew:
...
ANT控制台输出中文乱码的解决方法 -
so_depress:
谢谢分享
分页--Mysql中limit的用法详解 -
xht0430:
谢谢分享~~
在struts2超链接标签中传id值的方式 -
BenoWay:
我这里没有用。
try {
Substance ...
解决substance.jar标题栏中文乱码的方法 -
wawame:
谢谢,辛苦了。
Unable to instantiate default tuplizer [org.hibernate.tuple.entity.PojoEntityTup
1、log4j已经被移植到C, C++, C#, Perl, Python, Ruby, Eiffel 几种语言。
2、log4j有三种主要的组件
:记录器
,存放器
,布局
3、记录器(记录器可不关心log数据存放的事哟)
log4j允许程序员定义多个记录器,每个记录器有自己的名字,记录器之间通过名字来表明隶属关系(或家族关系)。列如,记录器a.b,与记录器
a.b.c之间是父子关系,而记录器a与a.b.c之间是祖先与后代的关系,父子关系是祖先与后代关系的特例。通过这种关系,可以描述不同记录器之间的逻
辑关系。
有一个记录器叫根记录器,它永远存在,且不能通过名字检索或引用,可以通过Logger.getRootLogger()方法取得它,而一般记录器通过Logger.getLogger(String name)方法。下面是Logger类的基本方法。
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);
}
记录器还有一个重要的属性,就是级别。(这好理解,就象一个家庭中,成员间存在辈份关系,但不同的成员的身高可能不一样,且身高与辈份
无关)程序员可以给不同的记录器赋以不同的级别,如果某个成员没有被明确值,就自动继承最近的一个有级别长辈的级别值。根记录器总有级别值。例如:
记录器名 | 赋予的级别值 | 继承的级别值 |
root | Proot | Proot |
X | Px | Px |
X.Y | none | Px |
X.Y.Z | none | Px |
程序员可以自由定义级别。级别值之间存在偏序关系,如上面几种级别就有关系DEBUG 每一条要输出的log信息,也有一个级别值。
前面的Logger类中,就预定义了 DEBUG, INFO, WARN, ERROR
,FATAL几种级别,由于与方法绑定,让人易产生误解,其实这几个方法只不过表明了要记录的log信息的级别。当调用log()方法时,log信息的级
别就需要在通过参数明确指定。
如果一条log信息的级别,大于等于记录器的级别值,那么记录器就会记录它。如果你觉得难以理解,可参考下例。
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()会返回对它的引用,这非常有利于用同一个
记录器在不同代码或类中记录log信息,另一个是与自然界中祖先先于后代出现不同,一个记录器的祖先可以比后代记录出现的晚,但会自动根据名字之间的关系
建立这种家族关系。
4、存放器
在log4j中,log信息通过存放器输出到目的地。支持的存放器有console, files, GUI
components, remote socket servers, JMS, NT Event Loggers, remote UNIX
Syslog daemons。通过file存放器,log信息可以被输出到不同的文件中(即不同的目的地)。log信息可被异步存放。
一个记录器可以有多个存放器,可以通过方法addAppender来增加存放器。一条blog信息如果可被这个记录器处理,则记录器会把这条信息送往每个它所拥有的存放器。
每个记录器有一个继承开关
,其开关决定记录器是/否继承其父记录器的存放器,注意,如果继承则只继承其父记录器,而不考虑更远的祖先的情况。参考下表:
记录器 | 增加的存放器 | 继承的存放器 | 输出的目的地 | 备注 |
root | A1 | not applicable | A1 | The root logger is anonymous but can be accessed with the Logger.getRootLogger() method. There is no default appender attached to root. |
x | A-x1, A-x2 | TRUE | A1, A-x1, A-x2 | Appenders of "x" and root. |
x.y | none | TRUE | A1, A-x1, A-x2 | Appenders of "x" and root. |
x.y.z | A-xyz1 | TRUE | A1, A-x1, A-x2, A-xyz1 | Appenders in "x.y.z", "x" and root. |
security | A-sec | FALSE | A-sec | No appender accumulation since the additivity flag is set to false. |
security.access | none | TRUE | A-sec | Only appenders of "security" because the additivity flag in "security" is set to false. |
5、布局
布局负责格式化输出的log信息。log4j的PatternLayout可以让程序以类似C语言printf的格式化模板来定义格式。
6、log4j可据程序员制定的标准自动提供一些log信息,这对那类需要频繁log的对象的情况很帮助。对象的自动log,具有继承性。
log4j.rootLogger=DEBUG, A1
# A1 is set to be a ConsoleAppender.
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log
log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1
# Print only messages of level WARN or above in the package com.foo.
log4j.logger.com.foo=WARN
对于tomcat4,利用环境变量传递参数的,可参见以下几个例子
配置文件位置如果没有明确指明,则要放在WEB-INF/classes目录下。
4、用servlet配置log4j
在Application目录下的web.xml文件加入以后代码
在加载的过程中,程序会读取/WEB-INF/log4j.properties这个文件。
配置文件讲解如下:
level 是日志记录的优先级
appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。
我这儿有两个程序,一个是普通的java程序,实现了一个“九九表”;另一个是servlet。我这儿用的tomcat是4.1.12,J2SE是1.3.1,log4j的版本是1.2.8.
一、九九表。
环境设置:需要将log4j-1.2.8.jar放入CLASSPATH变量中。
Hello.java文件的内容如下:
myweb的设置文件web.xml在$TOMCAT_HOME/webapps/myweb/WEB-INF/目录下,增加如下红色部分。
同时,在这个目录下建一个文件名叫log4j.properties,内容如下:
。在默认的情况下,tomcat的屏幕输出被重定向到$TOMCAT_HOME/logs/catalina.out文件中,在文件的最后也应看到上述的输出。
发表评论
-
JS拼凑XML字符
2010-11-27 00:07 940function encode(v) { ... -
JS拼凑XML字符
2010-11-27 00:06 1098写ajax时最容易输出xml ... -
JS处理xml特殊字符
2010-11-26 23:50 1826本周使用cell表结合xmlhttp组件开发异步 ... -
让footer总是显示在页面的最底部
2010-10-07 14:29 2628问题描述: 在页面中可能有这样的footer,我们期望它 ... -
XXT_LOG4J
2010-08-06 07:14 670Log日志:主要用于记录程序运行的情况,以便于程序在部署之后的 ... -
log4j 的使用
2010-08-06 06:57 844配置文件如下: log4j.rootLogger=debug ... -
[转载]log4j配置文件详解
2010-08-06 06:53 784一、log4j配置文件基本 ...
相关推荐
log4j配置文件说明,让你轻松配置日志文件
Log4j配置详解 特别清晰,大家可以下载来参考学习,有问题可以反馈
log4j配置文件以及配置文件说明 包里有一个log4j配置文件 和一个配置详解
log4j详细记录日志文件设置帮助说明文档。
log4j.properties配置详解
目录 ...................... 1. Log4j 简介 ..........4.1 properties 配置文件详解 4.2 XML 配置文件详解 .... 4.3 properties 比较详细的例子 4.4 在代码中使用 Log4j .. 4.5 注意事项 . 5. Properties 文件实例说明
SpringBoot框架配置log4j和log4j2的配置代码,项目中用到的配置文件,可下载使用
%d{ABSOLUTE} %5p %c{ 1}:%L - %m%n### 输出到日志文件 ###log4j.appender.D =org.apache.log4j.DailyRollingFileAppenderlog4j.appender.D.File =logs/log.loglog4j.appender.D.Append =truelog4j.appender.D....
Log4j有三个主要的组件:Loggers(记录器),Appenders (输出源)和Layouts(布局)。这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这三个组件可以轻松地记录信息的类型和级别,并可以在...
为了大家更好的理解log4j的配置和使用,本资源中包含demo和jar包,使用时按注释配置,配置后将中文注释删除即可
log4j的配置详细介绍,xml和properties两种格式,同时有一个完整的文档
介绍log4j属性配置 可以让你快速上手 介绍log4j属性配置 可以让你快速上手
log4j 2.x版本不再支持像1.x中的.properties后缀的文件配置方式,2.x版本配置文件后缀名只能为".xml",".json"或者".jsn". 系统选择配置文件的优先级(从先到后)如下: (1).classpath下的名为log4j2-test.json...
主要介绍了SSM整合中的Log4j的配置详情,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
以下小编主要为大家介绍一下log4j的配置文件各个配置项的含义。需要的朋友可以过来参考下
详细讲解Log4j的配置问题,包括XML文件配置方法和利用配置文件配置方法。
本文件详细讲解了log4j的配置文件的使用和怎样搭建log4j,适合初学者查看,如果错误请多多保函。
Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。