zoukankan      html  css  js  c++  java
  • log4j教程 11、日志记录到文件

    要写日志信息到一个文件中,必须使用org.apache.log4j.FileAppender。有以下FileAppender的配置参数:

    FileAppender配置:

    属性描述
    immediateFlush 标志的默认设置为true,这意味着输出流的文件被刷新,在每个追加操作
    encoding 它可以使用任何字符编码。默认情况下是特定于平台的编码方案
    threshold 这个 appender 阈值级别
    Filename 日志文件的名称
    fileAppend 默认设置为true,这意味着记录的信息被附加到同一文件的末尾
    bufferedIO 此标志表示是否需要写入缓存启用。默认设置为false
    bufferSize 如果 bufferedI/O 启用,这表示缓冲区的大小,默认设置为8KB

     

     

     

     

     

     

    下面是一个示例配置文件 log4j.properties 的 FileAppender。

    # Define the root logger with appender file
    log4j.rootLogger = DEBUG, FILE
    
    # Define the file appender
    log4j.appender.FILE=org.apache.log4j.FileAppender
    # Set the name of the file
    log4j.appender.FILE.File=${log}/log.out
    
    # Set the immediate flush to true (default)
    log4j.appender.FILE.ImmediateFlush=true
    
    # Set the threshold to debug mode
    log4j.appender.FILE.Threshold=debug
    
    # Set the append to false, overwrite
    log4j.appender.FILE.Append=false
    
    # Define the layout for file appender
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.FILE.layout.conversionPattern=%m%n

    如果喜欢相当于上述log4j.properties文件的XML配置文件,在这里是xml配置文件的内容:

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
    <log4j:configuration>
    
    <appender name="FILE" class="org.apache.log4j.FileAppender">
       <param name="file" value="${log}/log.out"/>
       <param name="immediateFlush" value="true"/>
       <param name="threshold" value="debug"/>
       <param name="append" value="false"/>
       <layout class="org.apache.log4j.PatternLayout">
          <param name="conversionPattern" value="%m%n"/>
       </layout>
    </appender>
    
    <logger name="log4j.rootLogger" additivity="false">
       <level value="DEBUG"/>
       <appender-ref ref="FILE"/>
    </logger>
    
    </log4j:configuration>

    可以尝试在 log4j - 示例程序 使用上面的配置。

    日志记录到多个文件:

    当想要写日志信息转化多个文件要求一样,例如,如果文件大小达到一定的阈值等。

    写日志记录信息分成多个文件,必须扩展FileAppender类,并继承其所有属性useorg.apache.log4j.RollingFileAppender类。

    有以下除了已如上所述为 FileAppender 可配置参数:

    属性描述
    maxFileSize 上述的文件的回滚临界尺寸。默认值是10MB
    maxBackupIndex 此属性表示要创建的备份文件的数量。默认值是1

     

     

     

    下面是一个示例配置文件log4j.properties的RollingFileAppender进行

    # Define the root logger with appender file
    log4j.rootLogger = DEBUG, FILE
    
    # Define the file appender
    log4j.appender.FILE=org.apache.log4j.RollingFileAppender
    # Set the name of the file
    log4j.appender.FILE.File=${log}/log.out
    
    # Set the immediate flush to true (default)
    log4j.appender.FILE.ImmediateFlush=true
    
    # Set the threshold to debug mode
    log4j.appender.FILE.Threshold=debug
    
    # Set the append to false, should not overwrite
    log4j.appender.FILE.Append=true
    
    # Set the maximum file size before rollover
    log4j.appender.FILE.MaxFileSize=5KB
    
    # Set the the backup index
    log4j.appender.FILE.MaxBackupIndex=2
    
    # Define the layout for file appender
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.FILE.layout.conversionPattern=%m%n

    如果想有一个XML配置文件,可以生成中提到的初始段,并添加相关的 RollingFileAppender 进行唯一额外的参数。

    此示例配置说明每个日志文件的最大允许大小为5MB。当超过最大尺寸,新的日志文件将被创建并因为maxBackupIndex被定义为2,当第二个日志文件达到最大值,第一个日志文件将被删除,之后所有的日志信息将被回滚到第一个日志文件。

    可以尝试 log4j - 示例程序使用上面的配置。

    每天生成日志文件:

    当想生成每一天的日志文件,以保持日志记录信息的良好记录。

    日志记录信息纳入日常的基础文件,就必须它扩展FileAppender类,并继承其所有属性useorg.apache.log4j.DailyRollingFileAppender类。

    有除了已如上所述为 FileAppender 只有一个重要的下列配置参数:

    Property描述
    DatePattern 这表示在滚动的文件,并按命名惯例来执行。默认情况下,在每天午夜滚动

     

     

    DatePattern控制使用下列滚动的时间表方式之一:

    DatePattern描述
    '.' yyyy-MM 滚动在每个月的结束和下一个月初
    '.' yyyy-MM-dd 这是默认值,每天午夜滚动
    '.' yyyy-MM-dd-a 滚动每一天的午夜和中午
    '.' yyyy-MM-dd-HH 滚动在每一个小时
    '.' yyyy-MM-dd-HH-mm 滚动在每一个分钟
    '.' yyyy-ww 滚动每个星期取决于区域设置时的第一天

     

     

     

     

     

    下面是一个示例配置文件log4j.properties生成日志文件滚动的在每天午夜。

    # Define the root logger with appender file
    log4j.rootLogger = DEBUG, FILE
    
    # Define the file appender
    log4j.appender.FILE=org.apache.log4j.DailyRollingFileAppender
    # Set the name of the file
    log4j.appender.FILE.File=${log}/log.out
    
    # Set the immediate flush to true (default)
    log4j.appender.FILE.ImmediateFlush=true
    
    # Set the threshold to debug mode
    log4j.appender.FILE.Threshold=debug
    
    # Set the append to false, should not overwrite
    log4j.appender.FILE.Append=true
    
    # Set the DatePattern
    log4j.appender.FILE.DatePattern='.' yyyy-MM-dd-a
    
    # Define the layout for file appender
    log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
    log4j.appender.FILE.layout.conversionPattern=%m%n

    如果想使用XML配置文件,可以生成中提到的初始段,并添加相关DailyRollingFileAppender 唯一的额外参数和数据。

    可以尝试在 log4j - 示例程序使用上面的配置。

     

  • 相关阅读:
    【计算机网络】WebSocket实现原理分析
    【计算机网络】如何让Ajax通信过程携带Cookie呢?
    【计算机网络】HTTPS协议的传输细节及过程分析
    【计算机网络】UDP基础知识总结
    前端知识体系-NodeJS相关】NodeJS基础知识全面总结
    【前端知识体系-NodeJS相关】对NodeJS模块机制的理解
    【前端知识体系-NodeJS相关】对于EventLoop(事件轮询)机制你到底了解多少?
    【前端知识体系-JS相关】你真的了解JavaScript编译解析的流程吗?
    【前端知识体系-NodeJS相关】浅谈NodeJS中间件
    linux安装electron
  • 原文地址:https://www.cnblogs.com/linjian/p/4644382.html
Copyright © 2011-2022 走看看