- 浏览: 197604 次
- 性别:
- 来自: 上海
文章分类
最新评论
Log4j支持两种配置文件格式,一种是java属性文件(键—值),一种是xml格式文件。
这里仅介绍下java属性文件的配置方法。
先看看个配置文件:log4j.properties
1、 Log4j.rootCategory=[ level | null ],appenderName,appenderName, ….
level:是日记记录的优先级,优先级由高到低分为 OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。Log4j建议只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG这四个级别。主意看到了null 了吧,所以在这里可以为空。
appenderName:指定日志信息输出到哪个地方,可以同时指定多个输出目的地。
2、Appender的语法为:
log4j.appender.appenderName=full name of appender’s class
log4j.appender.appenderName.kind=kind1
…
log4j.appender.appenderName.kind=kindN
有5种appender,分别为
org.apache.log4j.ConsoleAppender (控制台)
org.apache.log4j.FileAppender (文件)
org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件)
org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)
3、Layout的语法为:
log4j.appender.appenderName.layout=full name of layout’s class
log4j.appender.appenderName.layout.kind=kind
…
log4j.appender.appenderName.layout.kind=kindN
有4种layout ,分别为
org.apache.log4j.HTMLLayout (以html格式表格形式布局)
org.apache.log4j.PatternLayout (自定义布局)
org.apache.log4j.SimpleLayout (包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout (包含日志产生的时间、线程、类别等信息)
4、输出
都以%开始后面不同的参数代表不同的格式化信息(参数按字母表顺序列出):
%c 输出所属类的全名,可在修改为 %d{Num} ,Num类名输出的范围 如:"org.apache.xyz.SomeClass", %C{2}将输出xyz.SomeClass
%d 输出日志时间其格式为 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss}
%l 输出日志事件发生位置,包括类目名、发生线程,在代码中的行数
%n 换行符
%m 输出代码指定信息,如info(“message”),输出message
%p 输出优先级,即 FATAL ,ERROR 等
%r 输出从启动到显示该log信息所耗费的毫秒数
%t 输出产生该日志事件的线程名
5、Threshold的语法
log4j.threshold=level
level就是前面所说的 OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。Threshold是个全局的过滤器,它将把低于所设置的level的信息过滤不显示出来。
看一个例子:
这里初始设置 level为DEBUG ,但log4j.appender.C.Threshold=INFO 设置为INFO。因为 INFO>DEBUG 所以如果含有DEBUG级别的信息,将被过滤。
6、level of a logger
与threshold 相似,不过过滤得不是全部,而是将其所过滤的范围缩小到loggers所指级别内 。
同样看个例子(指定在chapter3包里面)
下面是说明chapter3包里面各个level
Logger name Assigned level Effective level
Root DEBUG DEBUG
chapter3 WARN WARN
chapter3.MyApp2 null WARN
chapter3.Foo null WARN
接着把上面的例子改动一下:
可以看到在最后一行增加了 log4j.logger.chapter3.Foo=DEBUG
可以通过运行程序来查看效果(这里将不详细介绍程序)
Chapter3.Foo的级别已上升为 DEBUG 了
Logger name Assigned level Effective level
Root DEBUG DEBUG
chapter3 WARN WARN
chapter3.MyApp2 null WARN
chapter3.Foo DEBUG DEBUG
写了这么多相信也累了吧,那就休息下吧,这么多的内容好好消化理解,以后继续学习 : ) ,了解这些基础的东西还不够,如果想更深入的理解 推荐 log4j The Complete Manual.pdf
这里仅介绍下java属性文件的配置方法。
先看看个配置文件:log4j.properties
log4j.rootCategory=debug,stdout,R log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) -%m%n log4j.appender.R=org.apache.log4j.RollingFileAppender log4j.appender.R.layout=org.apache.log4j.PatternLayout log4j.appender.R.layout.ConversionPattern=%p %t %c -%m%n #输出结果将写入 example.log log4j.appender.R.File=example.log log4j.appender.R.MaxFileSize=100KB log4j.appender.R.MaxBackupIndex=1
1、 Log4j.rootCategory=[ level | null ],appenderName,appenderName, ….
level:是日记记录的优先级,优先级由高到低分为 OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。Log4j建议只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG这四个级别。主意看到了null 了吧,所以在这里可以为空。
appenderName:指定日志信息输出到哪个地方,可以同时指定多个输出目的地。
2、Appender的语法为:
log4j.appender.appenderName=full name of appender’s class
log4j.appender.appenderName.kind=kind1
…
log4j.appender.appenderName.kind=kindN
有5种appender,分别为
org.apache.log4j.ConsoleAppender (控制台)
org.apache.log4j.FileAppender (文件)
org.apache.log4j.DailyRollingFileAppender (每天产生一个日志文件)
org.apache.log4j.WriterAppender (将日志信息以流格式发送到任意指定的地方)
3、Layout的语法为:
log4j.appender.appenderName.layout=full name of layout’s class
log4j.appender.appenderName.layout.kind=kind
…
log4j.appender.appenderName.layout.kind=kindN
有4种layout ,分别为
org.apache.log4j.HTMLLayout (以html格式表格形式布局)
org.apache.log4j.PatternLayout (自定义布局)
org.apache.log4j.SimpleLayout (包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout (包含日志产生的时间、线程、类别等信息)
4、输出
都以%开始后面不同的参数代表不同的格式化信息(参数按字母表顺序列出):
%c 输出所属类的全名,可在修改为 %d{Num} ,Num类名输出的范围 如:"org.apache.xyz.SomeClass", %C{2}将输出xyz.SomeClass
%d 输出日志时间其格式为 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss}
%l 输出日志事件发生位置,包括类目名、发生线程,在代码中的行数
%n 换行符
%m 输出代码指定信息,如info(“message”),输出message
%p 输出优先级,即 FATAL ,ERROR 等
%r 输出从启动到显示该log信息所耗费的毫秒数
%t 输出产生该日志事件的线程名
5、Threshold的语法
log4j.threshold=level
level就是前面所说的 OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。Threshold是个全局的过滤器,它将把低于所设置的level的信息过滤不显示出来。
看一个例子:
log4j.rootLogger=DEBUG, CON log4j.appender.CON=org.apache.log4j.ConsoleAppender log4j.appender.CON.layout=org.apache.log4j.PatternLayout log4j.appender.CON.layout.ConversionPattern=[%t] %-5p %c - %m%n #Only print log statement of level WARN or above regardless of the(只打印warn级别以上的信息) #logger. log4j.threshold=WARN Threshold的用法很灵活,还可以在appender中增加threshold log4j.rootLogger=DEBUG, C log4j.appender.C=org.apache.log4j.ConsoleAppender # Set the appender threshold to INFO log4j.appender.C.Threshold=INFO log4j.appender.C.layout=org.apache.log4j.PatternLayout log4j.appender.C.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
这里初始设置 level为DEBUG ,但log4j.appender.C.Threshold=INFO 设置为INFO。因为 INFO>DEBUG 所以如果含有DEBUG级别的信息,将被过滤。
6、level of a logger
与threshold 相似,不过过滤得不是全部,而是将其所过滤的范围缩小到loggers所指级别内 。
同样看个例子(指定在chapter3包里面)
log4j.rootLogger=DEBUG, CON log4j.appender.CON=org.apache.log4j.ConsoleAppender log4j.appender.CON.layout=org.apache.log4j.PatternLayout log4j.appender.CON.layout.ConversionPattern=[%t] %-5p %c - %m%n # Print only messages of priority WARN or above in package "chapter3". log4j.logger.chapter3=WARN
下面是说明chapter3包里面各个level
Logger name Assigned level Effective level
Root DEBUG DEBUG
chapter3 WARN WARN
chapter3.MyApp2 null WARN
chapter3.Foo null WARN
接着把上面的例子改动一下:
log4j.rootLogger=DEBUG, CON log4j.appender.CON=org.apache.log4j.ConsoleAppender log4j.appender.CON.layout=org.apache.log4j.PatternLayout log4j.appender.CON.layout.ConversionPattern=%d %-5p %c - %m%n # Allow requests level WARN or above in "chapter3" package except in # "chapter3.Foo" where DEBUG or above is allowed. log4j.logger.chapter3=WARN log4j.logger.chapter3.Foo=DEBUG
可以看到在最后一行增加了 log4j.logger.chapter3.Foo=DEBUG
可以通过运行程序来查看效果(这里将不详细介绍程序)
Chapter3.Foo的级别已上升为 DEBUG 了
Logger name Assigned level Effective level
Root DEBUG DEBUG
chapter3 WARN WARN
chapter3.MyApp2 null WARN
chapter3.Foo DEBUG DEBUG
写了这么多相信也累了吧,那就休息下吧,这么多的内容好好消化理解,以后继续学习 : ) ,了解这些基础的东西还不够,如果想更深入的理解 推荐 log4j The Complete Manual.pdf
发表评论
-
Java 5 并发学习(转)
2012-06-26 14:38 859Java 5 并发学习 在Java5之后,并发线程这块发生 ... -
WeakHashMap和HashMap的区别
2012-02-24 13:42 843http://mzlly999.iteye.com/blog/ ... -
volatile 的高级模式
2012-02-22 13:07 730前面几节介绍的模式涵盖了大部分的基本用例,在这些模式中使用 v ... -
The "Double-Checked Locking is Broken" Declaration
2012-02-22 10:34 957http://www.cs.umd.edu/~pugh/jav ... -
Log4j配置文件详细说明[转]
2012-02-14 10:48 1344属性文件Properties properties属性文件 ... -
pom.xml的介绍
2012-02-10 13:20 1068pom.xml包含了一个项目的项目对象模型(POM)。项目对象 ... -
单例模式的俩种方式
2012-01-04 14:09 921等等 单例模式的俩种方式: 饿汉式 class Singlet ... -
Mysql连接数据库:PreparedStatement.addBatch()方法
2011-12-23 08:43 58171.Eclipse连接MySQL数据库 mysql>C ... -
java中ArrayList 、LinkList区别
2011-12-21 15:30 1168java中ArrayList 、LinkList、List区别 ... -
Thread的实现
2011-12-21 14:25 1201Making a Thread A thread in Jav ... -
Date4j,一个简约的日期处理类库
2011-12-14 10:13 832Java本身的日期类在JDK1.0版本之后就再也没有更新过,同 ... -
How to use Log4j
2011-09-29 13:57 8061. LogManager.getInstance().get ... -
重写hashCode和equals方法(转)
2011-09-27 09:58 1130如果你的对象想散列存 ... -
学习Enum转
2011-09-22 14:11 8711. 关于 Java Enum: 学过 C/C++ 等 ... -
PO BO VO DTO POJO DAO概念及其作用(转)
2011-09-20 09:49 662J2EE开发中大量的专业缩略语很是让人迷惑,尤其是跟一些高手讨 ... -
Thread的实现
2011-09-20 09:47 856Thread的实现 1.extend Thread,then ... -
Adapter模式(转)
2011-08-17 15:48 883[b]GOF《设计模式》一书对Adapter模式是这样描述的: ... -
JVM常见配置汇总
2011-08-15 14:56 1902从这个图中可以看到, ... -
Abstract or Interface
2011-08-11 15:02 725详解java中的抽象类和接 ... -
HashMap HashTable TreeMap
2011-08-11 13:45 963Map中我们通过对象来对对象进行索引,用来索引的对象叫做key ...
相关推荐
完整的log4j配置文件
Log4j 配置文件说明 Log4j 是一种流行的日志记录工具,用于记录和管理应用程序中的日志信息。配置文件是 Log4j 的核心组件之一,通过配置文件可以控制日志记录的级别、输出目的地和格式。在本文中,我们将详细介绍 ...
在`Log4j配置文件详细说明[转].htm`和`Log4j配置文件详细说明[转]_files`这两个文件中,应包含了更详细的实例和说明,可以帮助深入理解每个属性的实际作用和配置方法。在实践中,不断试验和调整,你会发现Log4j是一...
标准log4j配置文件模板, 可自行下载参照
log4j配置文件例子,可以让你轻松配置log4j
### Log4j配置文件详解 #### 一、概述 Log4j是一款开源的日志记录工具,广泛应用于Java应用程序中。其强大的配置灵活性使得开发者能够轻松地定制日志记录的细节,如日志级别、输出目的地及日志信息的格式等。本文...
《深入理解Log4j配置文件》 在Java开发中,日志记录是不可或缺的一部分,而Log4j作为一款广泛使用的日志框架,以其强大的功能和灵活性深受开发者喜爱。本篇文章将详细探讨一个感觉还不错的Log4j配置文件,旨在帮助...
根据提供的标题、描述、标签及部分内容,我们可以详细探讨关于log4j配置文件的相关知识点,特别是如何通过各种Appender实现日志记录的不同需求。 ### 一、log4j配置文件概述 log4j是一款非常强大的日志框架,它...
要加载自己的Log4j配置文件,可以在Java代码中指定配置文件路径,例如使用`PropertyConfigurator.configure("path/to/config/file.properties")`,或者在类路径下放置名为`log4j.properties`或`log4j.xml`的文件,...
三、Log4j配置文件 Log4j的灵活性很大程度上体现在其配置文件中,通常命名为`log4j.properties`或`log4j.xml`。配置文件定义了日志记录的行为,包括日志级别、输出目的地、格式等。在提供的`log4j.txt`文件中,我们...
通常,配置文件(如`log4j.properties`或`log4j.xml`)会被放置在项目源代码的`src`目录下,这样在编译后会自动包含到类路径中。配置文件可以指定日志输出的目标(控制台、文件、数据库等),输出格式,以及过滤器...
### Log4J 全能配置文件详解 #### 一、概述 Log4J是一款非常流行的Java日志框架,被广泛应用于各种规模的应用程序中。它提供了灵活的日志记录机制,可以将日志输出到不同的目的地,如控制台、文件、数据库等,并且...
log4j 配置文件详解 log4j 配置文件是 Java 语言中使用 Log4j 日志记录工具的核心配置文件,用于设置日志记录的级别、输出目的地、日志输出格式等。下面是 log4j 配置文件的详解。 Logger 是 log4j 配置文件中的...
Log4j 配置文件通常以 `log4j.properties` 或 `log4j.xml` 的形式存在,其中包含了关于日志输出级别、日志目的地、格式和过滤器等设置。 配置 Spring 中的 Log4j,首先需要在项目的类路径下放置 Log4j 配置文件。...