`
xitong
  • 浏览: 6400732 次
文章分类
社区版块
存档分类
最新评论

Log4j的使用之配置

 
阅读更多

对log4j环境的配置就是对root logger的配置,包括把root logger设置为哪个级别(level);为它增加哪些appender,等等。这些可以通过设置系统属性的方法来隐式地完成,也可以在程序里调用XXXConfigurator.configure()方法来显式地完成。

可以通过两种方式来对log4j进行配置

A)程序配置

BasicConfigurator.configure()方法使用最简的方法配置log4j环境。注:所谓配置log4j环境,就是指配置root logger,因为所有其它的logger都是root logger的后代,所以它们(默认情况下)都将继承root logger的性质。

BasicConfigurator.configure()完成的任务是:

  1. 用默认pattern创建PatternLayout对象p:
    PatternLayout p = new PatternLayout("%-4r[%t]%-5p%c%x - %m%n");
  2. 用p创建ConsoleAppender对象a,目标是system.out,标准输出设备:
    ConsoleAppender a = new ConsoleAppender(p,ConsoleAppender.SYSTEM_OUT);
  3. 为root logger增加一个ConsoleAppender p:
    rootLogger.addAppender(p);
  4. 把root logger的log level设置为DEBUG级别:
    rootLogger.setLevel(Level.DEBUG);

B) 文件配置

B1)Xml格式的配置文件

log4j的xml配置文件的树状结构如下所示,注意下图只显示了常用的部分。 :.


xml declaration and dtd
|
log4j:configuration
|
+-- appender (name, class)
| |
| +-- param (name, value)
| +-- layout (class)
| |
| +-- param (name, value)
+-- logger (name, additivity)
| |
| +-- level (class, value)
| | |
| | +-- param (name, value)
| +-- appender-ref (ref)
+-- root
|
+-- param (name, class)
+-- level
| |
| +-- param (name, value)
+-- appender-ref (ref)

创建ConsoleAppender对象
ConsoleAppender的构造方法不接受其它的参数。 :.


... ... ... ...
<appender name="console.log" class="org.apache.log4j.ConsoleAppender">
<layout ... >
... ...
</layout>
</appender>
... ... ... ...

创建FileAppender对象
可以为FileAppender类的构造方法传递两个参数:File表示日志文件名;Append表示如文件已存在,是否把日志追加到文件尾部,可能取值为"true"和"false"(默认)。 :.


... ... ... ...
<appender name="file.log" class="org.apache.log4j.FileAppender">
<param name="File" value="/tmp/log.txt" />
<param name="Append" value="false" />
<layout ... >
... ...
</layout>
</appender>
... ... ... ...

创建RollingFileAppender对象
除了File和Append以外,还可以为RollingFileAppender类的构造方法传递两个参数:MaxBackupIndex备份日志文件的个数(默认是1个);MaxFileSize表示日志文件允许的最大字节数(默认是10M)。 :.


... ... ... ...
<appender name="rollingFile.log" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="/tmp/rollingLog.txt" />
<param name="Append" value="false" />
<param name="MaxBackupIndex" value="2" />
<param name="MaxFileSize" value="1024" />
<layout ... >
... ...
</layout>
</appender>
... ... ... ...

创建PatternLayout对象
可以为PatternLayout类的构造方法传递参数ConversionPattern。 :.


... ... ... ...
<layout class="org.apache.log4j.PatternLayout>
<param name="Conversion" value="%d [%t] %p - %m%n" />
</layout>
... ... ... ...

一个完整的例子如下:

log4j.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">

<appender name="appender1" class="org.apache.log4j.FileAppender">
<param name="File" value="gasturbine.log1.txt"/>
<param name="Append" value="false"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %p - %m%n"/>
</layout>
</appender>

<appender name="appender2" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="gasturbine.log2.txt" />
<param name="Append" value="false" />
<param name="MaxBackupIndex" value="5" />
<param name="MaxFileSize" value="1024" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %p - %m%n" />
</layout>
</appender>

<root>
<level value ="debug"/>
<appender-ref ref="appender1"/>
<appender-ref ref="appender2"/>
</root>

</log4j:configuration>

可以用下面这种方法把配置信息文件读入到Java程序中:

DOMConfigurator.configure("classes/log4j.xml");

B1)文本文件形式的配置文件


一个例子:

log4j.properties

#Logger
log4j.rootLogger=DEBUG, appender1,appender2


#Appender1
log4j.appender.appender1=org.apache.log4j.FileAppender
log4j.appender.appender1.File=gasturbine.log1.txt

#Appender2
log4j.appender.appender2=org.apache.log4j.RollingFileAppender
log4j.appender.appender2.File=gasturbine.log2.txt
log4j.appender.appender2.MaxFileSize=1024KB
log4j.appender.appender2.MaxBackupIndex=5

#Layout1
log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
log4j.appender.appender1.layout.ConversionPattern=[%d] %t %c %-5p - %m%n

#Layout2
log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.appender2.layout.ConversionPattern=[%d] %t %c %-5p - %m%n


#define the level of package
log4j.logger.gasturbine.model.component.compmodel.volume=DEBUG

与xml文件功能非常累似,就不再废话了

注意装载方式:PropertyConfigurator.configure("classes/log4j.properties");

分享到:
评论

相关推荐

    SpringBoot框架配置log4j和log4j2的配置代码

    3. **配置SpringBoot**:在`application.properties`中指定Log4j配置文件位置。 ```properties logging.config=classpath:log4j.properties ``` ### SpringBoot与Log4j2 Log4j2作为Log4j的升级版,提供更好的性能...

    log4j.properties配置文件

    `log4j.properties`是Apache Log4j框架中用于配置日志记录行为的核心文件之一。通过这个文件,开发者可以定义日志消息的输出方式(例如控制台或文件)、日志级别(如DEBUG、INFO等)以及日志格式等内容。正确配置`...

    SSM整合中的Log4j日志的配置详情

    Log4j 是一个功能强大且广泛使用的日志记录工具,特别是在 SSM(Spring、Spring MVC、Mybatis)整合项目中,合理地配置 Log4j 对项目的日志记录和输出至关重要。本文将详细介绍 SSM 整合中的 Log4j 配置详情,帮助...

    log4j使用jar包和log4j.properties配置文件

    本文将详细探讨Log4j的使用,主要关注1.2.17版本的jar包以及配置文件`log4j.properties`。 ### 1. Log4j简介 Log4j是一个开源的日志组件,支持多种输出格式,如控制台、文件、数据库等。它的核心概念包括Logger、...

    log4j实用配置扩展

    ### log4j实用配置扩展 #### 一、log4j简介与重要性 Log4j是一种广泛使用的开源日志框架,由Apache软件基金会维护。...对于任何涉及大量数据处理或复杂逻辑的应用程序而言,正确配置并使用log4j都是非常重要的。

    Log4j2结合Slf4j配置使用

    Log4j2 结合 Slf4j 配置使用 Log4j2 是一个功能强大且广泛使用的日志记录工具,它提供了灵活的日志记录机制和高性能的日志记录能力。Slf4j 则是一个简单的日志记录门面,提供了统一的日志记录接口。今天,我们将...

    log4j配置和加载方法

    ### Log4j配置与加载方法详解 Log4j是一款由Apache出品的日志记录工具,它提供了灵活的日志级别控制和多样化的日志输出方式,广泛应用于Java应用的开发中。本文将深入解析log4j的配置与加载机制,帮助开发者更好地...

    Log4j2学习log4j2.xml配置模板

    下面我们将学习 Log4j2 配置模板的使用和配置。 引入 Log4j2 依赖 在使用 Log4j2 之前,需要在 Maven 项目中引入 Log4j2 的依赖。我们可以在 pom.xml 文件中添加以下依赖项: ```xml &lt;groupId&gt;org.spring...

    log4j.properties配置详解

    #### 一、Log4j配置文件基本概念 Log4j是一种广泛应用于Java应用程序的日志框架,它可以帮助开发者轻松管理应用程序的日志记录过程。Log4j支持多种配置方式,其中.properties文件配置是最常用的一种。通过....

    tomcat下的log4j日志配置

    在使用 Apache Tomcat 作为服务器时,合理配置日志框架(如 Log4j)能够极大地提高开发效率和系统的可维护性。本文将详细介绍两种常见的 Log4j 配置方式:Tomcat 级别的统一日志管理和每个 web 应用分别配置 Log4j,...

    log4j 详细配置参考

    log4j 详细配置 log4j 详细配置 log4j 详细配置 log4j 详细配置

    log4j集成syslog配置说明

    #### log4j配置 在Java应用中,我们可以通过修改`log4j.properties`文件来集成syslog。具体步骤如下: 1. 在`log4j.rootLogger`中增加一个新的appender,例如命名为`syslog`。 2. 设置appender的相关属性: ```...

    log4j日志配置以及配置文件详解

    接下来,`log4j配置说明.txt`文件通常会提供更详细的解释和示例,包括如何配置不同的appender(如FileAppender、RollingFileAppender等),如何定义不同logger的级别,以及如何使用自定义的error handler和filter。...

    log4j.jar包,和log4j.properties配置文件下载

    Log4j是一个广泛使用的Java日志记录框架,它允许开发者在应用程序中插入日志语句,以便跟踪程序的运行情况、调试错误、监控性能等。这个框架由Apache软件基金会开发,是许多Java项目的首选日志解决方案,因为它具有...

    老生常谈Log4j和Log4j2的区别(推荐)

    下面我们将从配置文件类型、核心JAR包、文件渲染和Log调用四个方面来比较Log4j和Log4j2的区别。 配置文件类型 Log4j通过一个.properties文件作为主配置文件,而Log4j2则弃用了这种方式,采用的是.xml、.json或者....

    Log4J_全能配置文件.pdf

    ### Log4J 全能配置文件详解 #### 一、概述 Log4J是一款非常流行的Java日志框架,被广泛应用于各种规模的应用程序中。它提供了灵活的日志记录机制,可以将日志输出到不同的目的地,如控制台、文件、数据库等,并且...

    log4j使用基本配置

    Log4j 是一个广泛使用的Java日志记录框架,它提供了灵活的日志配置和多种日志输出格式,使得开发者能够方便地管理和控制应用程序的输出信息。本文将深入介绍如何配置和使用Log4j。 首先,Log4j 的配置可以通过两种...

    Log4j配置详解高清版

    标题《Log4j配置详解高清版》意味着本文将全面而深入地讲解Log4j的配置方法。Log4j是一个流行的日志框架,被广泛应用于Java应用程序中,用于记录日志信息,便于问题的调试与分析。描述说明文档内容清晰,适合下载...

    log4j配置及使用

    本文将详细介绍Log4j的配置和使用,助你更好地理解和掌握这一强大的日志工具。 1. **配置根Logger** 在Log4j中,根Logger是所有Logger的默认父Logger,它的设置会影响到所有没有明确配置的日志记录器。配置根...

    log4j-1.2.11jar和log4j.properties配置文件

    **四、使用Log4j进行日志记录** 在Java代码中,我们可以使用以下方式调用Log4j: ```java import org.apache.log4j.Logger; public class MyClass { private static final Logger logger = Logger.getLogger...

Global site tag (gtag.js) - Google Analytics