把指定类的日志信息输出到指定appender里:
============================================================
<!--appender中,Theshold和Filter都是可选。不过,建议这种目的下最好不要写,这样,什么信息会输出到该appender中,就只由指定logger的appender-ref的值来决定。否则会受到Theshold和Filter值的影响)。-->
<appender name="appender-3" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="${loggingRoot}/file.log"/>
<param name="append" value="true"/>
<param name="encoding" value="GBK"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%p [%d{HH:mm:ss}] %c{1}.%M(%L) - %m%n"/>
</layout>
</appender>
<logger name="com.a.b.c.d.e" additivity="false">
<!--指定类的日志级别,会影响指定类日志发出信息的成功与否-->
<level value = "debug" />
<appender-ref ref="appender-3" />
</logger>
同样,在root元素里不要指定该appender,如下:
<root>
<level value="warn"/>
<appender-ref ref="appender-1"/>
<appender-ref ref="appender-2"/>
</root>
这样的话,就杜绝了被其他logger继承的可能性。
此例中,如果在root里指定了该appender,则级别不低于warn的日志信息都会输出到appender-3中。
把各个级别的日志信息输出到各个的appender里,可使用过滤器,下面以info级别为例:
============================================================
<appender name="appender-info" class="org.apache.log4j.DailyRollingFileAppender">
<param name="file" value="${loggingRoot}/info.log"/>
<param name="append" value="true"/>
<param name="encoding" value="GBK"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%p [%d{HH:mm:ss}] %c{1}.%M(%L) - %m%n"/>
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="INFO" />
<param name="LevelMax" value="INFO" />
</filter>
</appender>
appender-info只接受信息级别为info的日志信息。
再说说关于root的一些情况:
============================================================
root元素定义的一些信息只供作默认情况和继承用。
只要后面的logger或appender,稍作显式声明,这些信息都会被覆盖。
以下面为例:
<root>
<level value="warn"/>
<appender-ref ref="appender-1"/>
<appender-ref ref="appender-2"/>
</root>
默认情况是:
1. 输出器appender-1和appender-2只接受不低于warn级别的日志信息,不过一旦指定了Theshold或Filter,就以指定的为准。
2. 日志记录器logger的输出器appender,默认会输出到appender-1和appender-2中,若指定了<appender-ref value="appender-3" />,则日志信息会输出到这三个,要停止这种继承关系,可添加additivity=false。
log4j简明手册中的要点。
.1 Named Hierarchy
如果一个logger 的名字后面跟着一个点号(dot),它就是点号(dot)后面的那个logger的前辈( ancestor),是这个晚辈(descendant) 的前缀。如果在它自己和这个晚辈之间没有其它的前辈,它和这个晚辈之间就是父子关系。
.2 Level Inheritance
对于一个给定的logger C,它继承的级别等于logger阶层里,从C开始往root logger上去的第一个non-null级别。
.3 Basic Selection Rule
在一个级别为q(被指定的或继承的)的logger里,一个级别为p的日志请求,只有在p >= q 时才能够被执行。
.4 Appender Additivity
Logger C的log输出信息将被输出到C的所有appenders和它的前辈的 appenders。这就是"appender additivity"的意思。
但是,如果logger C的前辈,比如说P,P的additivity flag被设置为 false,那么,C的输出信息将被输出到C的所有appenders中去,以及它的前辈的——截 止在P那里,包括P在内的,appenders中去,但是不会输出到P的前辈的 appenders中去。
默认情况下,Loggers的additivity flag设置为true。
log4j简明手册:http://log4j.jaxmao.org/log4j/docs/manual.html
初次实施log4j,做了些小总结,期待交流哈。
相关推荐
在这个场景中,我们将讨论如何通过`log4j.xml`配置文件来实现日志的自动化配置。 首先,我们创建了一个名为`Log4jConfigListener`的类,它实现了`ServletContextListener`接口。这个监听器的作用是在Web应用启动时...
- 配置文件可以是 `log4j.properties` 或 `log4j.xml`,通常放在项目的根目录或类路径下。 - 可以通过指定不同的 Appender 和 Layout 来控制日志的输出方式和格式。 3. **初始化 Logger 对象**:可以通过 `Logger...
本教程将详细解释如何配置Log4j,使其在不同操作系统环境下(Windows和Linux)都能统一将日志打印到`user.dir`目录下,避免因路径分隔符差异带来的问题。 首先,了解`user.dir`系统属性。在Java中,`user.dir`代表...
在Web应用中,如使用的是Servlet环境,可以通过在`web.xml`中配置`ContextLoaderListener`来加载Log4j配置,同时,我们还可以创建一个Servlet,当接收到特定请求时,更新Log4j配置。 ```xml <!-- web.xml 示例 --> ...
Log4j的配置文件通常是`log4j.properties`或`log4j.xml`,在这里你可以设置不同级别的日志输出,例如DEBUG、INFO、WARN、ERROR等。 对于Ibatis,这是一个轻量级的持久层框架,它将SQL语句与Java代码分离,提供了...
1. **配置文件详解**:了解如何在`log4j.properties`或`log4j.xml`中设置日志级别、指定Appender和Layout,以及应用过滤器。 2. **使用Logger**:学习如何在代码中创建和使用Logger对象,以及如何设置日志级别。 3...
log4j的核心配置文件通常是`log4j.properties`或`log4j.xml`,这里重点介绍`.properties`文件的配置方法。 ##### 3.1 配置文件基础结构 ```properties # 设置root logger的级别和输出目标 log4j.rootLogger=LEVEL,...
总结,本工程展示了如何在Eclipse中配置Log4j,以便每天将日志写入特定格式的文件中。这个配置对于任何Java项目都具有实用性,特别是对于需要长期维护和监控的应用来说,良好的日志记录习惯能大大提高问题定位和解决...
配置Log4j主要通过`log4j.properties`或`log4j.xml`文件完成,其中定义了日志级别、appender(日志输出目标)和layout(日志格式)。例如,你可以为不同的类或包设置不同的日志级别,以获取所需级别的详细信息。 在...
总结,通过以上步骤,你已成功配置了 MyBatis 使用 Log4j 来记录日志,同时将日志输出到后台控制台和文件,这有助于在开发和调试过程中追踪问题,提高代码的可维护性。记得根据实际需求调整日志级别和输出格式,以...
本文将通过一份示例文档来详细解析 Log4j 的日志配置方法。 #### 二、安装与配置 ##### 1. 安装 Log4j 包 首先,你需要下载并安装 Log4j。本示例中使用的是 `log4j-1.2.8.jar` 这个版本。将其复制到项目中的 `WEB...
Log4j的配置文件(通常是`log4j.properties`或`log4j.xml`)定义了日志信息的输出方式、级别、目的地等。例如,你可以设置日志信息打印到控制台、写入文件、发送电子邮件或者存储到数据库。配置文件中的主要元素包括...
在Java程序中,我们通常通过配置Log4j的XML或properties文件来设置这些组件。为了将`System.out.println()`的输出转到Log4j,我们可以创建一个特殊的Appender,它监听标准输出流(System.out)。Log4j提供了一个名为...
4. 在应用服务器中配置Log4J,例如在Tomcat中通过`WEB-INF/classes/log4j.properties`或`WEB-INF/classes/log4j.xml`文件。 通过以上配置,你可以根据需求定制日志系统,满足不同级别的信息记录、不同的输出目的地...
1. **配置文件**:`log4j.properties`是一个文本文件,用于配置Log4j的行为。例如,你可以设置不同的日志级别(如DEBUG、INFO、WARN、ERROR、FATAL),指定日志输出到控制台、文件或其他地方,以及定义日志的格式。...
在Java代码中,通过引入`org.apache.log4j.Logger`类并创建一个Logger实例来使用Log4j。下面是一个简单的示例: ```java import org.apache.log4j.Logger; public class Main { private static final Logger ...
Log4j 配置文件通常以 `log4j.properties` 或 `log4j.xml` 的形式存在,其中包含了关于日志输出级别、日志目的地、格式和过滤器等设置。 配置 Spring 中的 Log4j,首先需要在项目的类路径下放置 Log4j 配置文件。...
4. **通过应用服务器配置**: 在部署到应用服务器时,可以通过特定的Servlet来配置Log4j。 #### 六、总结 Log4j的配置文件允许开发者精确地控制日志记录的过程。通过对日志级别、Appender和Layout的定制配置,不仅...
通过配置Log4j.properties或Log4j.xml,我们可以定制日志输出的格式和目的地。 结合Spring AOP和Log4j,我们可以在不改变业务代码的情况下,实现对方法执行的动态日志跟踪。首先,我们需要创建一个切面类,这个类会...
2. **配置Log4j.properties或Log4j.xml**:创建一个名为`log4j.properties`或`log4j.xml`的配置文件,设置日志级别、Appender和Layout。例如,以下是一个简单的`log4j.properties`配置示例: ``` log4j.root...