`
LiYunpeng
  • 浏览: 952580 次
  • 性别: Icon_minigender_1
  • 来自: 大连
社区版块
存档分类
最新评论

log4j通过xml形式的文件配置

阅读更多
log4j的官方wiki
http://wiki.apache.org/logging-log4j/Log4jXmlFormat

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

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  <appender name="console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/> 
    </layout> 
  </appender> 

  <root> 
    <priority value ="debug" /> 
    <appender-ref ref="console" /> 
  </root>
  
</log4j:configuration>


这是官网给出的一个最基本的配置

<root>  
  <priority value="debug" /><!-- 日志中输出级别,这里输出debug级别以上的日志 debug、info、warn、error、fatal --> 
  <appender-ref ref="CONSOLE" /><!-- 在控制台输出 -->
  <appender-ref ref="FILE" /><!-- 在文件输出 -->
 </root>


这里面配置了 当前项目的全局日志输出情况,以两种形式输出,控制台和文件

---------记录日志的多种输出方式 start---------
这里面的CONSOLE和FILE,是引用,分别引用下面的代码

<appender name="CONSOLE" class="org.apache.log4j.ConsoleAppender"><!-- 控制台输出 -->
  <layout class="org.apache.log4j.PatternLayout"><!-- 输出布局模式 -->
   <param name="ConversionPattern" value="%d - %c -%-4r [%t] %-5p %x - %m%n" /><!-- 输出格式 -->
  </layout>
  <!--限制输出级别-->  
  <filter class="org.apache.log4j.varia.LevelRangeFilter">  
   <param name="LevelMax" value="ERROR"/>  
   <param name="LevelMin" value="ERROR"/>  
  </filter>
</appender>


者里面配置了在控制台输出的具体配置
使用了ConsoleAppender,另外布局使用了PatternLayout
filter的意思就是使用了过滤,讲这一块的内容再通过过滤器来过滤一遍,分级别高低,在这区间内的可以显示出来
(注意这里面参数的大小写)

还有其他的输出,比如通过JDBC输出到数据库、通过SMTP发送邮件,还有下面一段代码输出到File文件等
布局模式也有多种,比如输出成html网页形式等,具体可以参看官网介绍

关于输出格式
%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)

下面是输出到文件的配置
 <appender name="FILE" class="org.apache.log4j.FileAppender"><!-- 文件模式输出 -->
  <param name="File" value="C:/log4j1.log"/><!-- 输出到的位置 -->
  <layout class="org.apache.log4j.PatternLayout">  
   <param name="ConversionPattern"  
    value="%d - %c -%-4r [%t] %-5p %x - %m%n" />  
  </layout>  
 </appender>


<!-- ========================== 输出方式说明================================ -->  
    <!-- Log4j提供的appender有以下几种:  -->  
    <!-- org.apache.log4j.ConsoleAppender(控制台),  -->  
    <!-- org.apache.log4j.FileAppender(文件),  -->  
    <!-- org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件), -->  
    <!-- org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),  -->  
    <!-- org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)   -->  
<!-- ========================================================================== -->  
<!-- 输出到日志文件  -->  
    <appender name="filelog_appender"  
        class="org.apache.log4j.RollingFileAppender">  
        <!-- 设置File参数:日志输出文件名 -->  
        <param name="File" value="log/testlog4jxml_all.log" />  
        <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 -->  
        <param name="Append" value="true" />  
        <!-- 设置文件大小 -->  
        <param name="MaxFileSize" value="1MB" />  
        <!-- 设置文件备份 -->  
        <param name="MaxBackupIndex" value="10000" />  
        <!-- 设置输出文件项目和格式 -->  
        <layout class="org.apache.log4j.PatternLayout">  
            <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss} %-5p (%c:%L)- %m%n" />  
        </layout>  
    </appender>  
  
<!-- 输出到日志文件 每天一个日志  -->  
    <appender name="filelog_daily" class="org.apache.log4j.DailyRollingFileAppender">     
        <param name="File" value="log/daily.log" />     
        <param name="DatePattern" value="'daily.'yyyy-MM-dd'.log'" />     
        <layout class="org.apache.log4j.PatternLayout">     
            <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss\} %-5p] [%t] (%c:%L) - %m%n" />     
        </layout>     
    </appender>

以上分别是记录到文件的集中方式
<appender name="EMAIL_QQ" class="org.apache.log4j.net.SMTPAppender">  
        <param name="Threshold" value="INFO"/>  
        <param name="BufferSize" value="128" />  
        <param name="SMTPHost" value="smtp.qq.com" />  
        <param name="SMTPUsername" value="cjjvictory" />  
        <param name="SMTPPassword" value="***" />  
        <param name="From" value="cjjvictory@qq.com" />  
        <param name="To" value="cjjvictory@gmail.com" />  
        <param name="Subject" value="测试邮件发送" />  
        <param name="LocationInfo" value="true" />  
        <param name="SMTPDebug" value="true" />  
        <layout class="org.cjj.log4j.extend.PatternLayout_zh">  
            <param name="ConversionPattern" value="[%d{ISO8601}] %-5p %c %m%n"/>  
        </layout>  
    </appender>  
  
<!--- 异步测试,当日志达到缓存区大小时候执行所包的appender -->  
    <appender name="ASYNC_test" class="org.apache.log4j.AsyncAppender">     
     <param name="BufferSize" value="10"/>     
     <appender-ref ref="EMAIL_QQ"/>  
   </appender>  


以上代码则记录了,通过配置SMTP来发送日志的方式

 <appender name="DATABASE" class="org.apache.log4j.jdbc.JDBCAppender">  
  <param name="URL" value="jdbc:oracle:thin:@192.168.0.59:1521:oanet"/>  
  <param name="driver" value="oracle.jdbc.driver.OracleDriver"/>  
  <param name="user" value="hdczoa"/>  
  <param name="password" value="system"/>
  <layout class="org.apache.log4j.PatternLayout">  
   <param name="ConversionPattern"  
    value="INSERT INTO hdczoa.LOG4J(stamp,thread, info_level,class,message) VALUES ('%d', '%t', '%p', '%c', %m)" />  
  </layout>
 </appender>

以上代码则记录了通过配置JDBC来实现日志插入数据库

---------记录日志的多种输出方式 end---------

关于category 和logger

<logger name="com.abc" additivity="false">
    <level value="WARN" />
    <appender-ref ref="CONSOLE" />
 </logger>


这段代码是针对指定的包来设置日志输出情况的
其中的appender-ref同上

而category是和logger几乎相同的,logger继承于category,现在已经不提倡使用category了

log4j的配置大概也就这些,欢迎补充
分享到:
评论

相关推荐

    Log4j2学习log4j2.xml配置模板

    --monitorInterval:Log4j 能够自动检测修改配置 文件和重新配置本身,设置间隔秒数--&gt; &lt;!--先定义所有的 appender--&gt; &lt;!--这个输出控制台的配置--&gt; &lt;!--输出日志的格式--&gt; [%d{HH:mm:ss:SSS}] [%p] - %l -...

    log4j.xml文件的配置文.pdf

    ### 关于Log4j.xml配置文件的理解与应用 #### 一、引言 在Java开发领域,日志记录是至关重要的一个环节。它不仅能够帮助开发者更好地了解程序...总之,合理利用`log4j.xml`文件配置能够显著提升系统的稳定性和效率。

    Log4J配置实例(xml格式)

    Log4J的XML配置文件通常以`log4j.xml`或`logging.xml`为名,它们定义了日志的输出级别、目的地、布局格式以及附加的配置参数。 ### 1. 日志级别 Log4J支持多种日志级别,包括`DEBUG`、`INFO`、`WARN`、`ERROR`和`...

    log4j与web.xml的配置

    2. **Log4j配置文件(log4j.properties或log4j.xml)** - 在Java项目中,通常会有一个log4j配置文件,用于定义日志记录的级别、输出方式和格式。 - 示例配置: ``` log4j.rootLogger=DEBUG, FILE log4j....

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

    Log4j提供了多种配置方式,其中最常用的有两种:XML格式的`log4j.xml`和properties格式的`log4j.properties`。接下来,我们将深入探讨如何通过这两种配置文件来设置日志输出的目标、级别以及格式。 1. **XML配置** ...

    log4j.jar及log4j.xml

    要在项目中使用Log4j,首先需要将`log4j.jar`添加到项目的类路径中,然后创建或引用`log4j.xml`配置文件。在代码中,通过以下方式创建和使用Logger: ```java import org.apache.log4j.Logger; public class ...

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

    在 SSM 整合项目中,需要在 web.xml 文件中指定 Log4j 配置文件的位置,以便 Spring 可以加载 Log4j 配置文件。下面是一个基本的 web.xml 配置: ``` &lt;listener-class&gt;org.springframework.web.util.Log4...

    Log4J.xml的模板

    标题中的“Log4J.xml”指的是Apache Log4j框架的配置文件。Log4j是Java平台上广泛使用的日志记录工具,它允许程序员以灵活和可配置的方式控制应用程序的日志输出。XML格式的配置文件提供了更高级别的结构和可读性,...

    日志配置文件log4j.xml以及MySql数据库驱动文件

    `log4j.xml`是其配置文件,用于定义日志输出的行为和格式。通过这个文件,开发者可以控制日志级别(如DEBUG、INFO、WARN、ERROR和FATAL),指定日志输出的目标(控制台、文件、网络、数据库等),以及设置日志格式。...

    log4j.xml

    首先,log4j.xml是一个基于XML格式的配置文件,它是Log4j框架的核心组成部分,用于定义日志记录的行为和输出方式。与传统的log4j.properties文件相比,XML格式更易于阅读和维护,同时提供了更好的扩展性。 配置文件...

    log4j配置文件说明(完整版)

    Log4j 配置文件说明 ...Log4j 配置文件是 Log4j 的核心组件之一,通过配置文件可以控制日志记录的级别、输出目的地和格式。了解 Log4j 配置文件的基本结构和配置方法,可以更好地使用 Log4j 实现日志记录和管理。

    项目配置文件( spring-mvc.xml spring-mybatis.xml web.xml log4j.properties)

    这里提到的四个关键配置文件——`spring-mvc.xml`、`spring-mybatis.xml`、`web.xml`以及`log4j.properties`,对于一个基于Java的Web应用来说至关重要,特别是使用Spring MVC和MyBatis框架的时候。接下来,我们将...

    log4j2.xml记录日志到到数据库

    总结,Log4j2通过XML配置文件实现了与MySQL数据库的集成,允许开发者将日志信息存储在数据库中,便于长期保存和分析。理解Log4j2的配置和使用是每个Java开发者必备的技能,这对于日后的故障排查和系统维护至关重要。...

    log4j配置和加载方法

    在`.properties`文件中,配置信息通过键值对的形式呈现,如示例中的`log4j.category.org.zblog=ERROR,A1`,这里指定了`org.zblog`这个logger的日志级别为`ERROR`,并关联到名为`A1`的appender。 2. **.xml格式**:...

    log4jxml详细分析 例子全

    `log4j.xml`配置文件主要用于定义日志的输出方式,包括日志级别、日志信息的格式、日志输出的目标等。以下是对给定部分`log4j.xml`配置文件的详细解析: 1. **Appender配置**:Appender是日志输出目的地的抽象概念...

    log4j的jar包和配置文件

    Log4j的配置通常通过一个名为`log4j.properties`或`log4j.xml`的文件完成。以下是一个简单的`log4j.properties`配置示例: ```properties # 设置root logger级别为INFO,并将输出到console log4j.rootLogger=INFO, ...

    log4j及配置文件

    Log4j的灵活性很大程度上体现在其配置文件中,通常命名为`log4j.properties`或`log4j.xml`。配置文件定义了日志记录的行为,包括日志级别、输出目的地、格式等。在提供的`log4j.txt`文件中,我们可以看到类似以下的...

    log4j配置文件和jar包

    Log4j的配置文件(通常是`log4j.properties`或`log4j.xml`)定义了日志信息的输出方式、级别、目的地等。例如,你可以设置日志信息打印到控制台、写入文件、发送电子邮件或者存储到数据库。配置文件中的主要元素包括...

    使用xml或properties配置的log4j

    标题“使用xml或properties配置的log4j”指的是本文将探讨如何通过XML和properties文件这两种不同的格式来配置Log4j,这是一个广泛使用的Java日志记录框架。Log4j允许开发者控制应用程序的日志输出,包括级别、格式...

Global site tag (gtag.js) - Google Analytics