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 - 示例程序使用上面的配置。
log4j教程 11、日志记录到文件的更多相关文章
- Flask使用日志记录到文件示例
https://www.polarxiong.com/archives/Flask%E4%BD%BF%E7%94%A8%E6%97%A5%E5%BF%97%E8%AE%B0%E5%BD%95%E5%8 ...
- log4j日志记录到文件
要写日志信息到一个文件中,必须使用org.apache.log4j.FileAppender.有以下FileAppender的配置参数: FileAppender配置: 属性 描述 immediate ...
- python中添加日志记录到文件
1.实现python日志功能 2.只输出到文件,不输出到控制台 #encoding:utf-8 import logging from common import path_util logging_ ...
- shell脚本中自定义日志记录到文件
自定义日志函数和前期变量 # adirname - return absolute dirname of given file adirname() { odir=`pwd`; cd `dirname ...
- Log4j分级别保存日志到单个文件中,并记录IP和用户信息
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE log4j:configuration S ...
- Hibernate使用Log4j日志记录(使用properties文件)
我们知道,Log4j和Logback框架可用于支持日志记录hibernate,使用log4j有两种执行日志记录的方法: 通过log4j.xml文件(或) 通过log4j.properties文件 在这 ...
- Hibernate使用Log4j日志记录(使用xml文件)
日志记录使程序员能够将日志详细信息永久写入文件. Log4j和Logback框架可以在hibernate框架中使用来支持日志记录. 使用log4j执行日志记录有两种方法: 通过log4j.xml文件( ...
- log4j.xml配置,包含自定义log4j日志级别及输出日志到不同文件
一.配置 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configura ...
- C#Log4net日志记录组件的使用
一.Log4Net介绍 Log4net是基于.NET开发的一款非常著名的记录日志开源组件.它通过一套XML配置的日志引擎,将日志分不同的等级,分别是:FATAL . ERROR. WARN. INFO ...
随机推荐
- 微信支付:回调地址notify_url不能带参数
最近在用Yii2写一个微信商城,在调用微信支付接口时遇到了问题. 支付环节是正常的,微信端能收到支付成功的系统提示,然而回调url始终收不到微信服务器的POST,经过手动测试,回调页面的逻辑也没有问题 ...
- CF911F Tree Destruction 解题报告
CF911F Tree Destruction 题意翻译 给你一棵树,每次挑选这棵树的两个叶子,加上他们之间的边数(距离),然后将其中一个点去掉,问你边数(距离)之和最大可以是多少. 输入输出格式 输 ...
- 树(tree)
树(tree) 题目描述 小明正在研究一种砍树游戏.一开始在W列H行的方格上,每一个格子都长着一颗树,格子的行从北到南依次编号,格子的列从西到东依次编号. 小明会砍倒一些树,每砍倒一颗树,树会占据这个 ...
- H5单文件压缩插件
单文件压缩上传 <input type="file" id="file"> 构造函数 function UpFileImg(options){ va ...
- js函数的参数
js函数的参数: js是弱类型的编程语言,调用函数时既不在乎函数的参数,也不在意参数的类型 即便你定义的函数值接受两个参数,在调用这个函数时也未必一定要是两个参数.可以传递一个.三个甚至不传递参数,而 ...
- centos7配置环境LNMP
#yum安装epel-release第三方软件包 yum install epel-release #要验证EPEL仓库是否建立成功 yum repolist xshell访问系统出现中文乱码的解决方 ...
- IOS-使用CAShapLayer绘制扇形
IOS-使用CAShapLayer绘制扇形 为了增加应用体验感,我们动态绘制扇形或者饼状图效果. 这里我们使用CAShapeLayer,这样就不必再-(void)draw函数内绘制图形 参考代码 -( ...
- 跳石头(NOIP2015) (二分查找)
原题传送门 好久没更了..昨天去学zkw线段树,被zxyer狠狠地D了一顿.. 来补坑.. 这是一道很奇特的题目. 根据题目可以看出这道题有二分题具有的性质.. 不懂二分性质的可以看我以前的博客 传送 ...
- POCO库中文编程参考指南(3)Poco::Net::Socket
POCO库中文编程参考指南(3)Poco::Net::Socket 作者:柳大·Poechant 博客:Blog.CSDN.net/Poechant 邮箱:zhongchao.ustc#gmail.c ...
- C++内联汇编,输出人物名字
DWORD PeopleBase =0x9CD674;//天龙人物基址 //获取人物名称 char * CData::GetPeopleName() { char * name="& ...