`
xinyoulinglei
  • 浏览: 126046 次
社区版块
存档分类
最新评论

log4j多文件输出日志信息

阅读更多
<?xml version="1.0" encoding="UTF-8"?>
<!--
log4j.appender.A1.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ssS} %c %m%n
             这里需要说明的就是日志信息格式中几个符号所代表的含义:
             -X号: X信息输出时左对齐;
                     %p: 输出日志信息优先级,即DEBUG,INFO,WARN,ERROR,FATAL,
                     %d: 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921
                     %r: 输出自应用启动到输出该log信息耗费的毫秒数
                     %c: 输出日志信息所属的类目,通常就是所在类的全名
                     %t: 输出产生该日志事件的线程名
                     %l: 输出日志事件的发生位置,相当于%C.%M(%F:%L)的组合,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java:10)
                     %x: 输出和当前线程相关联的NDC(嵌套诊断环境),尤其用到像java servlets这样的多客户多线程的应用中。
                     %%: 输出一个"%"字符
                     %F: 输出日志消息产生时所在的文件名称
                     %L: 输出代码中的行号
                     %m: 输出代码中指定的消息,产生的日志具体信息
                     %n: 输出一个回车换行符,Windows平台为"
",Unix平台为"
"输出日志信息换行
              可以在%与模式字符之间加上修饰符来控制其最小宽度、最大宽度、和文本的对齐方式。如:
                       1)%20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,默认的情况下右对齐。
                       2)%-20c:指定输出category的名称,最小的宽度是20,如果category的名称小于20的话,"-"号指定左对齐。
                       3)%.30c:指定输出category的名称,最大的宽度是30,如果category的名称大于30的话,就会将左边多出的字符截掉,但小于30的话也不会有空格。
                       4)%20.30c:如果category的名称小于20就补空格,并且右对齐,如果其名称长于30字符,就从左边交远销出的字符截掉

配置日志信息输出目的地

        其语法为:
        log4j.appender.appenderName = fully.qualified.name.of.appender.class    //
        "fully.qualified.name.of.appender.class" 可以指定下面五个目的地中的一个:

            1.org.apache.log4j.ConsoleAppender(控制台)
            2.org.apache.log4j.FileAppender(文件)
            3.org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
            4.org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
            5.org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)

               1.ConsoleAppender选项
                      Threshold=WARN:指定日志消息的输出最低层次。
                      ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
                      Target=System.err:默认情况下是:System.out,指定输出控制台
                2.FileAppender 选项
                      Threshold=WARN:指定日志消息的输出最低层次。
                      ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
                      File=mylog.txt:指定消息输出到mylog.txt文件。
                      Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
              3.DailyRollingFileAppender 选项
                      Threshold=WARN:指定日志消息的输出最低层次。
                      ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
                      File=mylog.txt:指定消息输出到mylog.txt文件。
                      Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
                      DatePattern=''.''yyyy-ww:每周滚动一次文件,即每周产生一个新的文件。当然也可以指定按月、周、天、时和分。即对应的格式如下:
                      1)''.''yyyy-MM: 每月
                      2)''.''yyyy-ww: 每周 
                      3)''.''yyyy-MM-dd: 每天
                      4)''.''yyyy-MM-dd-a: 每天两次
                      5)''.''yyyy-MM-dd-HH: 每小时
                      6)''.''yyyy-MM-dd-HH-mm: 每分钟
              4.RollingFileAppender 选项
                      Threshold=WARN:指定日志消息的输出最低层次。
                      ImmediateFlush=true:默认值是true,意谓着所有的消息都会被立即输出。
                      File=mylog.txt:指定消息输出到mylog.txt文件。
                      Append=false:默认值是true,即将消息增加到指定文件中,false指将消息覆盖指定的文件内容。
                      MaxFileSize=100KB: 后缀可以是KB, MB 或者是 GB. 在日志文件到达该大小时,将会自动滚动,即将原来的内容移到mylog.log.1文件。
                      MaxBackupIndex=2:指定可以产生的滚动文件的最大数。

  #发送邮件:SMTPAppender
#log4j.rootLogger = INFO,MAIL
log4j.appender.MAIL = org.apache.log4j.net.SMTPAppender
log4j.appender.MAIL.Threshold = INFO
log4j.appender.MAIL.BufferSize = 10
log4j.appender.MAIL.From = yourmail@gmail.com
log4j.appender.MAIL.SMTPHost = smtp.gmail.com
log4j.appender.MAIL.Subject = Log4J Message
log4j.appender.MAIL.To = yourmail@gmail.com
log4j.appender.MAIL.layout = org.apache.log4j.PatternLayout
log4j.appender.MAIL.layout.ConversionPattern =%d - %c -%-4r [%t] %-5p %c %x - %m %n

#数据库:JDBCAppender
log4j.appender.DATABASE = org.apache.log4j.jdbc.JDBCAppender
log4j.appender.DATABASE.URL = jdbc:oracle:thin:@ 210.51 . 173.94 : 1521 :YDB
log4j.appender.DATABASE.driver = oracle.jdbc.driver.OracleDriver
log4j.appender.DATABASE.user = ydbuser
log4j.appender.DATABASE.password = ydbuser
log4j.appender.DATABASE.sql = INSERT INTO A1 (TITLE3) VALUES ( ' %d - %c %-5p %c %x - %m%n ' )
log4j.appender.DATABASE.layout = org.apache.log4j.PatternLayout
log4j.appender.DATABASE.layout.ConversionPattern =% d -   % c -%- 4r [ % t] %- 5p % c % x -   % m % n
#数据库的链接会有问题,可以重写org.apache.log4j.jdbc.JDBCAppender的getConnection() 使用数据库链接池去得链接,可以避免insert一条就链接一次数据库


-->
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j='http://jakarta.apache.org/log4j/'> 

   <appender name="stdout" class="org.apache.log4j.ConsoleAppender"> 
       <layout class="org.apache.log4j.PatternLayout"> 
           <param name="ConversionPattern" 
               value="%d{yyyy/MM/dd HH:mm:ss.sss} [%-5p] %c - %m%n"/> 
       </layout> 
      
        <!--过滤器设置输出的级别--> 
        <filter class="org.apache.log4j.varia.LevelRangeFilter"> 
            <param name="levelMin" value="error" /> 
            <param name="levelMax" value="error" /> 
            <param name="AcceptOnMatch" value="true" /> 
        </filter>
    </appender> 
      
    <appender name="traceLog4Debug" class="org.apache.log4j.RollingFileAppender"> 
        <param name="File" value="C:/logtest/traceLog4Debug.log"/> 
        <param name="maxFileSize" value="2000KB"/> 
        <param name="maxBackupIndex" value="20"/> 
        <layout class="org.apache.log4j.PatternLayout"> 
            <param name="ConversionPattern" 
                value="%d{yyyy/MM/dd HH:mm:ss.sss} [%-5p] %c:%L %m%n"/> 
        </layout> 
        <!--过滤器设置输出的级别--> 
        <filter class="org.apache.log4j.varia.LevelRangeFilter"> 
            <param name="levelMin" value="debug" /> 
            <param name="levelMax" value="warn" /> 
            <param name="AcceptOnMatch" value="true" /> 
        </filter>
    </appender> 
      
    <appender name="debugLog" class="org.apache.log4j.RollingFileAppender"> 
        <param name="File" value="C:/logtest/debug.log"/> 
        <param name="maxFileSize" value="2000KB"/> 
        <param name="maxBackupIndex" value="10"/> 
        <layout class="org.apache.log4j.PatternLayout"> 
            <param name="ConversionPattern" 
                value="%d{yyyy/MM/dd HH:mm:ss.sss} [%-5p] %c - %m%n"/> 
        </layout> 
        <!-- <SPAN style="COLOR: #ff0000"></SPAN> filter作用?  配置LevelMax与LevelMin限定输出到文件的日志级别 -->
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
        <param name="LevelMax" value="DEBUG" />
        <param name="LevelMin" value="DEBUG" />
        </filter>
       
    </appender> 
      
    <appender name="infoLog" class="org.apache.log4j.RollingFileAppender"> 
        <param name="File" value="C:/logtest/info.log"/>
         <!-- 设置是否在重新启动服务时,在原有日志的基础添加新日志 --> 
        <param name="Append" value="true" /> 
        <param name="maxFileSize" value="2000KB"/> 
        <param name="maxBackupIndex" value="10"/> 
        <layout class="org.apache.log4j.PatternLayout"> 
            <param name="ConversionPattern" 
                value="%d{yyyy/MM/dd HH:mm:ss.sss} [%-5p] %c - %m%n"/> 
        </layout> 
        <filter class="org.apache.log4j.varia.LevelRangeFilter"> 
                    <param name="LevelMax" value="INFO" /> 
                    <param name="LevelMin" value="INFO" /> 
            </filter> 
    </appender> 
      <!-- 每天产生一个日志文件信息 格式: activex.yyyy-MM-dd.log-->
    <appender name="activexAppender" class="org.apache.log4j.DailyRollingFileAppender"> 
        <param name="File" value="E:/activex.log" />   
        <param name="DatePattern" value="'.'yyyy-MM-dd'.log'" />   
        <layout class="org.apache.log4j.PatternLayout"> 
         <param name="ConversionPattern"   
            value="[%d{MMdd HH:mm:ss SSS\} %-5p] [%t] %c{3\} - %m%n" /> 
        </layout>   
    </appender> 
   
      
    <appender name="warnLog" class="org.apache.log4j.RollingFileAppender"> 
        <param name="File" value="C:/logtest/warn.log"/> 
        <param name="maxFileSize" value="2000KB"/> 
        <param name="maxBackupIndex" value="10"/> 
        <layout class="org.apache.log4j.PatternLayout"> 
            <param name="ConversionPattern" 
                value="%d{yyyy/MM/dd HH:mm:ss.sss} [%-5p] %c - %m%n"/> 
        </layout> 
        <filter class="org.apache.log4j.varia.LevelRangeFilter"> 
                    <param name="LevelMax" value="WARN" /> 
                    <param name="LevelMin" value="WARN" /> 
            </filter> 
    </appender> 
      
   <appender name="errorLog" class="org.apache.log4j.RollingFileAppender"> 
       <param name="File" value="C:/logtest/error.log"/> 
       <param name="maxFileSize" value="2000KB"/> 
       <param name="maxBackupIndex" value="10"/> 
       <layout class="org.apache.log4j.PatternLayout"> 
           <param name="ConversionPattern" 
               value="%d{yyyy/MM/dd HH:mm:ss.sss} [%-5p] %c - %m%n"/> 
       </layout> 
       <filter class="org.apache.log4j.varia.LevelRangeFilter"> 
                   <param name="LevelMax" value="ERROR" /> 
                   <param name="LevelMin" value="ERROR" /> 
           </filter> 
   </appender> 
     
   <!-- 记录该包下所有日志 --> 
   <logger name="com.huawei.icity.idea.comm.dao"> 
       <level value="ALL"/> 
       <appender-ref ref="stdout"/> 
       <appender-ref ref="traceLog4Debug"/> 
       <appender-ref ref="debugLog"/> 
       <appender-ref ref="infoLog"/> 
       <appender-ref ref="warnLog"/> 
       <appender-ref ref="errorLog"/> 
   </logger> 
     
   <logger name="org.hibernate.SQL"> 
       <level value="DEBUG"/> 
       <appender-ref ref="traceLog4Debug"/> 
       <appender-ref ref="stdout"/> 
   </logger> 
     
   <logger name="org.hibernate"> 
       <level value="error"/> 
        <appender-ref ref="traceLog4Debug"/> 
        <appender-ref ref="stdout"/> 
    </logger> 
      
    <logger name="org.springframework"> 
        <level value="error"/> 
        <appender-ref ref="traceLog4Debug"/> 
        <appender-ref ref="stdout"/> 
    </logger> 
   
</log4j:configuration> 




  
分享到:
评论

相关推荐

    log4j多文件输出打印

    本话题将深入探讨如何使用Log4j实现多文件输出打印,以及自定义日志的配置。 首先,我们要理解Log4j的基本工作原理。Log4j的核心组件包括Logger、Appender和Layout。Logger负责生成日志事件,Appender则负责接收...

    log4j自定义日志文件名及日志输出格式

    Log4j是Apache提供的一款广泛使用的日志框架,它提供了丰富的配置选项,允许开发者灵活地控制日志输出。当我们面对特定项目需求,比如需要自定义日志文件名和日志输出格式时,Log4j同样提供了相应的解决方案。 首先...

    log4j 写多个日志文件,按照日期每天都记

    1. **配置多个Appender**:`log4j`允许定义多个Appender,每个Appender可以有不同的输出目的地,如控制台、文件、数据库等。在我们的需求中,我们需要为每一天创建一个单独的日志文件,所以需要为每一天定义一个...

    log4j按功能保存日志

    - 在Log4j的配置文件(通常是`log4j.properties`或`log4j.xml`)中,你可以定义多个Appender,每个Appender对应一个特定的功能或模块。 - 使用`category`或`logger`标签指定Logger的名称,这通常与你的功能模块相...

    log4j(二):动态配置日志输出路径

    总结来说,Log4j的动态配置日志输出路径主要涉及对配置文件的解析和重新加载,以及在运行时使用API直接调整日志设置。理解并熟练运用这些方法,可以帮助我们在开发过程中更灵活地管理和监控日志,提高开发效率和问题...

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

    这是log4j框架的配置文件,使用Java Properties格式,用于定义日志输出的行为。主要包括以下几个核心部分: 1. **Logger**: 定义日志级别,例如DEBUG、INFO、WARN、ERROR和FATAL。日志级别决定了哪些信息会被记录。...

    mybatis,log4j打印日志到后台和文件

    Log4j 是一个广泛使用的日志记录工具,能够帮助开发者跟踪应用程序运行过程中的信息、警告、错误等事件。本文将深入探讨如何在 MyBatis 中配置 Log4j,实现日志同时输出到后台控制台和文件。 1. **日志框架集成** ...

    log4j 配置日志文件,把日志信息输出到项目的某个文件夹下

    在本文中,我们将深入探讨如何配置log4j,以便将日志信息输出到项目中的特定文件夹。 首先,我们需要创建一个`log4j.properties`或`log4j.xml`配置文件,这个文件通常放在项目的`src/main/resources`目录下。在这个...

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

    控制台输出目的地将日志信息输出到控制台,而文件输出目的地将日志信息输出到指定的文件中。 三、在 web.xml 中指定 Log4j 配置文件 在 SSM 整合项目中,需要在 web.xml 文件中指定 Log4j 配置文件的位置,以便 ...

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

    在“Log4j2实现不同线程不同级别日志输出到不同的文件中”这个主题中,我们将深入探讨如何利用Log4j2实现这一高级日志管理需求。 1. **日志级别**: - 在Log4j2中,日志级别包括DEBUG、INFO、WARN、ERROR、FATAL...

    log4j日志文件乱码解决方法

    Log4j允许开发者自定义日志输出的方式,包括输出到控制台、文件、数据库等。它使用了`QuietWriter`类来写入日志,`QuietWriter`继承自`FilterWriter`,而`FilterWriter`又继承自`Writer`。`Writer`类处理的是字符流...

    log4j日志文件

    在实际应用中,根据项目需求,可以通过调整Log4j的配置文件来控制日志的级别、输出位置和格式,从而更好地管理和利用日志信息。理解并熟练掌握Log4j的配置与使用,对于提高软件的可维护性和排查问题的效率具有重要...

    log4j中配置日志文件相对路径方法(PDF)

    ### Log4j中配置日志文件相对路径方法详解 #### 概述 在软件开发过程中,日志记录是一项重要的功能,它有助于开发者调试程序、监控应用程序的运行状态以及追踪问题。`Log4j`作为一款优秀的日志管理工具,被广泛应用...

    使用log4j2实现日志数据脱敏

    使用Log4j2的Layout组件定义日志输出格式。例如,我们可以使用PatternLayout,并自定义模式来指定哪些字段需要脱敏。例如,`%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n` 是一个基本的日志...

    log4j2配置文件,按照文件大小划分日志,保存日期天数内的日志等

    log4j2配置文件,按照文件大小划分日志,保存日期天数内的日志,指纹日志命名规则,日志输出等级等功能

    配置好log4j的eclipse简单工程,每天输出到一个日志文件中,该文件名为:“XXX_年月日时分.log”的形式

    本工程基于Eclipse IDE,配置了一个简单的Log4j设置,实现了每天自动将日志输出到一个特定命名格式的文件中,即“XXX_年月日时分.log”。下面我们将详细解析这个配置及其工作原理。 1. **Log4j介绍**: Log4j是一...

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

    1. **配置文件**:如`log4j2.xml`,这是Log4j2的配置中心,定义了日志记录的策略、级别、输出目标等。 2. **日志记录器(Logger)**:负责收集和处理日志事件。 3. **日志级别(Level)**:如`TRACE`, `DEBUG`, `...

    log4j配置 输出日志 案例

    Log4j是Apache组织开发的一个开源项目,用于生成日志信息。它提供了灵活的配置方式,支持多种输出格式和多个级别的日志记录,如DEBUG、INFO、WARN、ERROR和FATAL。通过配置log4j,我们可以控制日志的输出位置、级别...

    log4j多个简单实例

    Log4j是Apache组织开发的一个强大的、灵活的日志记录框架,它允许我们控制日志信息的输出级别、格式以及输出位置。本篇文章将深入探讨Log4j的多个简单实例,帮助你理解和掌握其基本用法。 首先,Log4j由三个主要...

Global site tag (gtag.js) - Google Analytics