`
wandejun1012
  • 浏览: 2719800 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

log4j 分不同目录输出-xml版

 
阅读更多

据我目前的功力,也就是只能分2个不同的地方,且这2个地方互不干扰,相互独立。

 

如果这2者是相互重复的,那么这个就太容易了啊。直接设多个appender,然后file后面的地址写不一样就行了。


但是要考虑到,它们受level的影响,指定某个级别的level以上的level全是输出的。

 

下面将举个例子,利用的就是logger 和 root的区别!

 

完整的log4j.xml配置如下:

 

 

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration>
  
  
  <appender name="DebugAppender" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="D:/UA/UADebugLogs/debug.log"/>
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{ISO8601}|%-5p|%c|%t|%m%n"/>
    </layout>
  </appender>


  <appender name="InfoAppender" class="org.apache.log4j.DailyRollingFileAppender">
    <param name="File" value="D:/UA/UACognosLogs/result.log"/>
    <layout class="org.apache.log4j.PatternLayout">
      <param name="ConversionPattern" value="%d{ISO8601}|%-5p|%c|%t|%m%n"/>
    </layout>
  </appender>
  


  <!-- These are the possible log levels - debug | info | warn | error | fatal  -->
  
  <!-- client -->
  <logger name="result" additivity="false"> 
    <level value ="info"/>
    <appender-ref ref="InfoAppender"/>
  </logger> 
  
  
  
 
  <root>
    <priority value="debug"/>
    <appender-ref ref="DebugAppender"/>
  </root>
</log4j:configuration>
 

解释如下:1、root设的是全局的level,然后logger那段是要继承root的设置的,然而在我们这我们不想继续它,将additivity设为false即可。

 

2、对于file=地址,这里的地址可以用相对地址,不过在打包成jar后一般都不认识了。我暂时还没找到完美的方法,只能傻傻的用绝对路径,即D:/UA/UADebugLogs/debug.log。或者D:\\UA\\UADebugLogs\\debug.log。

 

3、对于DailyRollingFileAppender而言,当天的日志文件是不会加上日期的,只有昨天以前的文件前面才会加上日期。这一点请注意。

 

 

4、对于Logger的name的更深的理解:

 

 

private Logger logger=Logger.getLogger("result")
和
private Logger logger=Logger.getLogger(UACognos.class.getName())
 

一般我们都习惯用第2种方法,然后在log4j的输出文件中写的就是这个类的名字。而且这样写就意味必须继承root的设置。如果你不想继承root的话,那么就得像第一种写法一样,用指定的特殊的logger。

 

 

关于2、3两点,其实都可以写一博文来解释。会在csdn上写的。

 

 

refurl:1、http://ankyhe.iteye.com/blog/1143927

2、http://willow-na.iteye.com/blog/347340

3、http://zhangxiang390.iteye.com/blog/258455

 

 

 

分享到:
评论

相关推荐

    log4j-slf4j-impl.zip

    2. 配置Log4j:创建log4j.properties或log4j.xml配置文件,指定日志级别、输出目的地、格式等。 3. 使用SLF4J API:在代码中通过LoggerFactory获取Logger实例,然后调用相应的方法记录日志。 五、最佳实践 1. **...

    log4j + slf4j-api + slf4j-log4j12

    使用这些组件时,开发者需要在项目中配置log4j的配置文件(通常是`log4j.properties`或`log4j.xml`),定义日志输出的级别、格式、目的地等。SLF4J API的使用则是在代码中引入相应的依赖,并通过SLF4J的...

    log4j-API-最新稳定版本log4j-1.2.17

    3. **Appenders**:Appenders是Log4j的核心组件之一,负责将日志消息输出到不同的目的地,如控制台、文件、网络、电子邮件等。 4. **Layouts**:Layouts决定了日志事件的格式,如简单的文本格式、XML或JSON,以便于...

    log4j-api-2.12.4.ja和log4j-core-2.12.4.jar

    配置Log4j通常通过一个XML或JSON格式的配置文件完成,例如`log4j2.xml`或`log4j2.json`,这个文件定义了日志的输出级别、目的地(如控制台、文件、数据库等)以及格式。 总的来说,Log4j 2是Java开发中不可或缺的...

    log4j-api-2.17.1.jar和log4j-core-2.17.1.jar

    例如,`org.apache.logging.log4j.core.appender.ConsoleAppender`用于将日志输出到控制台,而`org.apache.logging.log4j.core.layout.PatternLayout`则可以按照自定义的模式格式化日志信息。 Log4j2的亮点之一是其...

    log4j-2.11.2的jar包和日志门面slf4j的jar包

    使用这两个库时,通常需要一个配置文件(如`log4j2.xml`或`log4j2.json`)来定义日志行为,包括日志输出级别(如DEBUG、INFO、WARN、ERROR)、输出目的地(控制台、文件、数据库等)、以及布局格式(如PatternLayout...

    logging-log4j2-log4j-2.15.0-rc2.zip

    《深入理解Log4j 2.15.0-rc2:日志处理的关键技术解析》 Log4j,作为Java领域广泛使用的日志记录框架,一直以来都是开发者们的重要工具。这次我们关注的是其最新版本——logging-log4j2-log4j-2.15.0-rc2。这个版本...

    apache-log4j-2.17.0-bin.tar.gz

    6. **配置灵活性**:Log4j的配置可以通过XML、JSON、YAML或纯Java代码进行,方便调整和适应不同环境。 7. **安全性**:Log4j 2.17.0修复了一个名为CVE-2021-44228的重大安全漏洞,该漏洞允许攻击者通过控制日志输入...

    apache-log4j-2.14.0-bin.zip

    总的来说,Apache Log4j 2.14.0是一个强大的日志工具,它提供了丰富的配置选项,能够满足不同项目的需求。与Spring 5的结合使得在现代Java应用中集成日志变得简单高效。正确配置和使用Log4j 2,可以帮助开发者更好地...

    spring-boot-starter-log4j2

    2. 配置Log4j2:Spring Boot默认使用`src/main/resources/log4j2.xml`或`log4j2.json`作为Log4j2的配置文件。你可以根据需求自定义日志级别、输出格式、输出位置等。 四、Log4j2配置详解 1. 日志级别:Log4j2支持...

    slf4j-log4j12-1.5.6.jar

    2. **配置 Log4j**:创建一个 `log4j.properties` 或 `log4j.xml` 配置文件,定义日志级别、输出目的地、格式等。 3. **避免日志冲突**:确保项目中没有其他日志库(如 log4j、java.util.logging)的直接引用,以免...

    log4j.jar和commons-logging.jar

    **commons-logging.jar** 是Apache Commons项目的一部分,它提供了一个抽象层,允许应用程序使用多种不同的日志框架,如log4j、Java内置的日志API(java.util.logging)、或者其他的日志实现。这个库的核心理念是...

    log4j-1.2.14和commons-logging-1.1

    Log4j的核心优势在于其灵活性和可配置性,它允许开发者自定义日志级别(如DEBUG、INFO、WARN、ERROR、FATAL),并且可以选择不同的输出目的地,例如控制台、文件、网络、数据库等。此外,通过配置文件(通常为`log4j...

    Log4j2学习log4j2.xml配置模板

    *灵活的配置:Log4j2 提供了非常灵活的配置机制,可以根据需要定义不同的日志级别、输出格式和文件名等属性。 *高性能:Log4j2具有非常高的性能,可以handle大量的日志信息。 *灵活的appender:Log4j2 提供了多种...

    slf4j-log4j12-1.7.7.jar下载

    SLF4J的配置主要是通过Log4j的配置文件(通常是`log4j.properties`或`log4j.xml`)来完成的。这个配置文件定义了日志记录的行为,包括日志级别(DEBUG, INFO, WARN, ERROR, FATAL等)、输出目的地(控制台、文件、...

    slf4j-log4j12-1.6.6.jar

    在使用`slf4j-log4j12-1.6.6.jar`时,开发者首先会通过SLF4J API在代码中记录日志,然后在运行环境中通过配置文件(如log4j.properties或log4j.xml)指定日志输出的策略。例如,开发者可以设置日志级别,控制哪些...

    log4j-1.2.16.jar、slf4j-api-1.6.1.jar、slf4j-log4j12-1.6.1.jar资源包

    `log4j`的核心特性包括配置灵活性(通过XML或properties文件)、多种日志级别(如DEBUG、INFO、WARN、ERROR和FATAL)、以及支持多种输出格式(如控制台、文件、数据库等)。开发者可以通过简单的API调用来控制日志...

    apache-log4j-2.3-bin和commons-logging-1.2

    Commons Logging 是 Apache 的一个通用日志接口,它提供了一个简单的API,使得开发者能够在不关心具体日志实现的情况下,切换不同的日志框架,如Log4j、Java内置的日志系统等。Commons Logging 1.2 版本的特点有: ...

    log4j-2.17.1的jar包,导入即可使用

    4. **配置文件**:Log4j 的行为可以通过配置文件(通常是`log4j2.xml`或`log4j2.json`)进行定制。配置文件可以定义日志级别(如TRACE, DEBUG, INFO, WARN, ERROR, FATAL, OFF),日志输出目的地(控制台、文件、...

    apache-log4j-2.0-rc1-src

    2. **配置文件**:Log4j使用配置文件(如log4j2.xml或log4j2.json)来定义日志输出的位置、格式和级别。这些配置可以动态更新,无需重启应用。 3. **Appenders**:Appenders是Log4j用来输出日志信息的组件,例如...

Global site tag (gtag.js) - Google Analytics