使用org.apache.log4j.FileAppender可以把日志写到文件中:

FileAppender配置

  • immediateFlush 这个标志默认为true,是否每次有消息产生都自动flush到文件中
  • encoding 字符编码
  • threshold appender的阈值threshold
  • Filename 日志文件的名称
  • fileAppend 默认设置为true,所有的日志都输出到相同的文件
  • bufferedIO 是否启用缓冲区,默认是false
  • bufferSize 如果启用了缓冲区,设置缓冲区的大小。默认是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

如果是配置XML的配置文件,可以参考如下:

``

log4j:configuration

``

多文件输出——日志轮转

如果需要把日志文件写入到多个文件中,例如,按照文件的大小,到达一定的阈值后,就写入另一个文件。

那么你可以使用apache.log4j.RollingFileAppender类,它继承了FileAppender,并能设置一些属性达到上面的需求。

添加的属性如下:

  • maxFileSize 这是日志轮转的关键属性,设置了日志的大小阈值,默认是10MB
  • maxBackupIndex 这个属性设置了文件会被备份的数目,默认是1

log4j.properties的配置如下


##### 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以及它的两个属性添加进去就可以了。

上面的文件中,最大的文件大小为5kb,当超过这个大小后,就会创建新的文件;然后这个文件被命名为log.1;同理,如果有log.2就会重命名为log.3。如果索引数目最多设置为5,并且已经存在了log.5,那么log.5会被直接删除。

多问键输出——日期轮转

如果想要每天更新一下日志文件,那么可以使用org.apache.log4j.DailyRollingFileAppender。

它增加的属性如下:

  • DatePattern 这个属性声明了命名规则,默认是每一天的半夜24点更新一次

这个属性可以按照下面的方式书写:

  • '.'yyyy-MM 在每个月刚开始的时候更新一次
  • '.'yyyy-MM-dd 每天半夜24点的时候更新
  • '.'yyyy-MM-dd-a 每天12点和24点更新
  • '.'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中配置,添加相关的属性即可。

Log4j官方文档翻译(八、文件输出)的更多相关文章

  1. Log4j官方文档翻译(九、输出到数据库)

    log4j提供了org.apache.log4j.JDBCAppender对象,可以把日志输出到特定的数据库. 常用的属性: bufferSize 设置buffer的大小,默认是1 driver 设置 ...

  2. Log4j官方文档翻译(三、配置)

    之前的章节介绍了log4j的核心组件,本章将会通过配置文件介绍一下核心组建的配置. 主要在配置文件中配置log4j的日志级别,定义appender.layout等. log4j.properties是 ...

  3. Log4j官方文档翻译(四、如何在java中输出日志消息)

    我们已经创建来配置文件,本章详细的介绍下如何生成调试信息,并把他们转化成文本文件. 基本的例子 下面就是创建的一个基本的例子: log4j.properties的内容为: log = /usr/hom ...

  4. Log4j官方文档翻译(五、日志输出的方法)

    日志类提供了很多方法用于处理日志活动,它不允许我们自己实例化一个logger,但是提供给我们两种静态方法获得logger对象: public static Logger getRootLogger() ...

  5. Log4j官方文档翻译(二、架构设计)

    log4j遵循层次化架构,每个层都有不同的对象来执行不同的任务.这种层次话的结构灵活设计.易于未来的扩展. log4j框架中有两种对象: 核心对象:框架的支撑对象,是框架必不可少的组成部分. 支撑对象 ...

  6. Log4j官方文档翻译(一、基本介绍)

    简介 log4j是使用java语言编写的可靠的.快速的.灵活的日志框架,它是基于Apache的license. log4j支持c,c++,c#,perl,python,ruby等语言.在运行时通过额外 ...

  7. log4j配置单独日志文件输出

    log4j.logger.batteryHistory=ERROR,BD log4j.appender.BD=org.apache.log4j.FileAppender log4j.appender. ...

  8. Log4j官方文档翻译(七、日志格式化)

    apache log4j提供各种layout对象,然后根据自己指定的layouts对象转化日志信息.通常来说都是应用量身定制layout对象转换信息格式. 所有的layout对象从Appender对象 ...

  9. Log4j官方文档翻译(六、日志的级别)

    org.apache.log4j.Level 类提供了下面几种日志级别,你也可以通过继承这些类,自定义级别 ALL 所有日志级别都包括 DEBUG 指定信息事件的粒度是DEBUG,在调试应用的时候会有 ...

随机推荐

  1. python_69_内置函数1

    #abs()取绝对值 ''' all(iterable) Return True if all elements of the iterable are true (or if the iterabl ...

  2. vue的属性监听

    一.vue的监听 1.监听的例子 如: html:<input type="number" v-model="a" /> js: watch: { ...

  3. Java - 类加载的时候,是有缺省同步锁的

    类加载的时候,是有缺省同步锁的

  4. windows 时间同步至最新时间方法 | windows 时间同步服务器

    国内 windows 系统的电脑有时候不能自动同步互联网当前时间,这就需要改一下 windows 的时间同步服务器 版权声明:本文为博主原创文章,未经博主允许不得转载. 原文地址:https://ww ...

  5. web前端-回调函数sort详解

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  6. 【css】如何实现响应式布局

    “自适应网页设计”到底是怎么做到的?其实并不难. 首先,在网页代码的头部,加入一行viewport元标签. <meta name="viewport" content=&qu ...

  7. CentOS下安装php gd库报错Error: php56w-common conflicts with php-common-5.3.3-48.el6_8.x86_64

    因为服务器缺少php gd库,因为系统是centos,就是用yum去安装,一安装就报错如下: [root@iZ28sdxghs2Z ~]# yum install php-gd Loaded plug ...

  8. 13.VUE学习之控制行内样式

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta http ...

  9. 初学Python不知道做什么项目好?来看看练手项目如何?

    对于初学者来说,在学习编程的初期,由于基础知识点的学习是比较无聊的,所以大家可能会有所反感,为了减弱大家的反感,我给大家带来一个简单的小项目——实现屏保计时器,这个项目就算是刚学Python的小伙伴, ...

  10. String使用方法详解

    标准c++中string类函数介绍 注意不是CString 之所以抛弃char*的字符串而选用C++标准程序库中的string类,是因为他和前者比较起来,不必 担心内存是否足够.字符串长度等等,而且作 ...