`
koen
  • 浏览: 81867 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的

阅读更多

 

vampire_315 原创   更新:2006-12-18 17:35:39  版本: 1.0   

 

 

Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。

1. 配置文件
Log4J配置文件的基本格式如下:

 #配置根Logger
log4j.rootLogger  =   [ level ]   ,  appenderName1 ,  appenderName2 ,  …

#配置日志信息输出目的地Appender
log4j.appender.appenderName  =  fully.qualified.name.of.appender.class
  log4j.appender.appenderName.option1  =  value1
  …
  log4j.appender.appenderName.optionN  =  valueN

#配置日志信息的格式(布局)
log4j.appender.appenderName.layout  =  fully.qualified.name.of.layout.class
  log4j.appender.appenderName.layout.option1  =  value1
  …
  log4j.appender.appenderName.layout.optionN  =  valueN  
其中 [level] 是日志输出级别,共有5级:
FATAL      0  
ERROR      3  
WARN       4  
INFO       6  
DEBUG      7
 
Appender 为日志输出目的地,Log4j提供的appender有以下几种:
 org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
Layout:日志输出格式,Log4j提供的layout有以下几种:
 org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:
   %m   输出代码中指定的消息
  %p   输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
  %r   输出自应用启动到输出该log信息耗费的毫秒数
  %c   输出所属的类目,通常就是所在类的全名
  %t   输出产生该日志事件的线程名
  %n   输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
  %d   输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss , SSS},输出类似:2002年10月18日  22 : 10 : 28 , 921  
  %l   输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )  
2. 在代码中初始化Logger:
1)在程序中调用BasicConfigurator.configure()方法:给根记录器增加一个ConsoleAppender,输出格式通过 PatternLayout设为"%-4r [%t] %-5p %c %x - %m%n",还有根记录器的默认级别是Level.DEBUG.
2)配置放在文件里,通过命令行参数传递文件名字,通过PropertyConfigurator.configure(args[x])解析并配置;
3)配置放在文件里,通过环境变量传递文件名等信息,利用log4j默认的初始化过程解析并配置;
4)配置放在文件里,通过应用服务器配置传递文件名等信息,利用一个特殊的servlet来完成配置。

3. 为不同的 Appender 设置日志输出级别:
当调试系统时,我们往往注意的只是异常级别的日志输出,但是通常所有级别的输出都是放在一个文件里的,如果日志输出的级别是BUG!?那就慢慢去找吧。
这时我们也许会想要是能把异常信息单独输出到一个文件里该多好啊。当然可以,Log4j已经提供了这样的功能,我们只需要在配置中修改Appender的Threshold 就能实现,比如下面的例子:

[配置文件]
 ### set log levels ###
log4j.rootLogger = debug ,  stdout ,  D ,  E

### 输出到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern =  %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n

### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG ## 输出DEBUG级别以上的日志
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n

### 保存异常信息到单独文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/error.log ## 异常日志文件名
log4j.appender.D.Append = true
log4j.appender.D.Threshold = ERROR ## 只输出ERROR级别以上的日志!!!
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss}  [ %t:%r ] - [ %p ]  %m%n
[代码中使用]
  public   class  TestLog4j   {
     public   static   void  main(String[] args)   {
        PropertyConfigurator.configure( " D:/Code/conf/log4j.properties " );
        Logger logger  =  Logger.getLogger(TestLog4j. class );
        logger.debug( " debug " );
        logger.error( " error " );
    }
}
运行一下,看看异常信息是不是保存在了一个单独的文件error.log中.

 

分享到:
评论

相关推荐

    Log4J的配置文件(Configuration File)

    来自: ... Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。

    Log4J的配置文件

    Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。Log4j 框架是用 Java 语言编写的标准日志记录框架。通过配置,可以创建出Log4J的...

    log4j配置文件、jar包

    Log4j的配置文件是整个系统设置的关键,通常命名为`log4j.properties`(基于Properties)或`log4j.xml`(基于XML)。这两个文件定义了日志级别、logger、appender及其布局等参数。例如: ```properties # log4j....

    log4j configuration

    本文将深入探讨Log4j的配置,主要依据提供的`log4j.xml`配置文件。 首先,我们需要了解Log4j的基本组件。主要有以下三个核心元素: 1. **Logger(日志器)**:负责生成日志事件,它是日志记录的起点。每个Logger都...

    log4j2在项目中的配置,对不同级别的日志进行不同文件的存储

    本文将详细解释如何配置Log4j2以实现不同级别的日志分别存储到不同的文件中。 首先,确保在项目中正确引入了Log4j2的jar包。通常,这可以通过在Maven或Gradle构建文件中添加依赖来完成。对于Maven,可以在pom.xml...

    Log4Net自带配置文件实例讲解

    总结来说,Log4Net通过配置文件可以灵活地管理日志记录,包括设置日志级别、过滤规则、输出格式以及目标输出位置。在实际应用中,可以根据需求调整这些配置,以满足不同场景下的日志记录需求。理解并掌握Log4Net的...

    log4j配置详解.

    它的配置文件(Configuration File)主要用于设置记录器(Logger)的级别、存放器(Appender)以及布局(Layout),支持key=value格式的设置或XML格式的设置信息。通过这些配置,我们可以非常灵活地控制日志的记录方式...

    log4j多个简单实例

    首先,Log4j由三个主要组件构成:配置器(Configuration)、日志器(Logger)和布局(Layout)。配置器定义了日志信息的输出格式和位置;日志器负责生成日志事件;布局则决定了日志信息的显示样式。 **一、配置Log4...

    log4j实例,配置

    6. **Configuration(配置)**:Log4j的配置通常通过XML或Properties文件进行,如`log4j.properties`或`log4j.xml`。配置文件中可以定义Loggers、Appenders、Layouts及其关系,以及日志级别等。 下面是一个简单的...

    tomcat下用Log4j 按文件大小,生成catalina.out日志文件

    Log4j主要包括三个核心组件:Logger(日志器)、Appender(输出器)和Layout(布局)。Logger负责创建和管理日志记录,Appender决定日志信息输出到哪里,而Layout则控制日志信息的格式。 要实现按文件大小生成日志...

    weblogic中使用log4j生成日志文件实例

    Log4j主要由三个部分组成:配置器(Configuration)、日志器(Logger)和布局器(Layout)。配置器定义了日志输出的格式和位置,日志器负责生成日志事件,而布局器则决定这些事件如何被格式化输出。 1. **配置Log4j...

    log4j的详细配置,log4j.xml和log4j.properties,日志输出到文件,邮件,数据库,控制台等

    - **配置示例**:例如,`log4j.rootLogger=DEBUG, FILE`表示根日志器的级别设为DEBUG,并将日志输出到名为FILE的appender。 - **Appender配置**:在properties文件中,每个appender都有自己的配置,如`log4j....

    log4j和ibatis配置文档

    总结,log4j和iBatis的配置是Java应用的基础,正确设置可以优化开发效率,提高问题排查的便利性,同时也能确保数据库操作的高效稳定。通过理解并熟练运用这两个框架的配置,开发者能更好地掌控应用的运行状态和...

    Log4j2实现不同线程不同级别日志输出到不同的文件中

    Log4j2是一款广泛使用的Java日志记录框架,它提供了高度可配置的日志记录功能,能够帮助开发者在应用程序中方便地记录、管理和分析日志信息。在“Log4j2实现不同线程不同级别日志输出到不同的文件中”这个主题中,...

    log4j 1.2.17版本jar包

    1. **Logger**: 日志记录器,它是Log4j的核心。开发者通过Logger对象来创建和控制日志消息。每个类通常都有一个与之关联的Logger,可以通过Logger.getLogger()方法获取。 2. **Appender**: 输出目标,负责将日志...

    log4j替代catalina.out

    此外,Log4j还支持通过添加自定义的日志级别、过滤器和异步日志记录等功能,以适应各种复杂的日志需求。在实际使用中,应根据项目的规模和需求调整`log4j.properties`中的设置,以优化日志记录的效果。

    mybatis整合log4j

    为了解决这个问题,我们需要引入一个桥接包来桥接SLF4J和Log4j: 1. 创建配置文件:与之前一样,放置`log4j.xml`或`log4j.properties`在SRC目录下。 2. 添加依赖:除了`log4j-1.2.15.jar`之外,还需要添加`slf4j-...

    log4j从入门到详解

    在类路径下(通常是src文件夹下)创建一个名为`log4j.properties`的配置文件,用于指定日志记录的具体配置。 ```properties # 配置文件示例 log4j.rootLogger=debug, appender1 # 定义appender1为控制台输出 log4j...

    java 中log4j包总结的各个版本

    Log4j是Java编程语言中广泛使用的日志记录框架,其设计目标是提供一个灵活、高效且易于配置的日志系统。这个压缩包包含了Log4j的多个版本,具体提到的是"log4j-1.2.4.jar",这是一个较早的版本。Log4j的各个版本在...

Global site tag (gtag.js) - Google Analytics