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 - 示例程序使用上面的配置。

时间: 2024-08-02 15:13:36

log4j教程 11、日志记录到文件的相关文章

巧用Logcat把日志记录到文件

在一些开发阶段,产品已经小部分分发出去,在出现问题的时候,我们希望用户能把当时的Logcat日志也发过来提供给程序员进行分析,这里介绍一个巧妙利用logcat命令行进行日志记录的方法,不用自己写日志记录的代码. Android的shell里面提供个logcat的命令,是用来查看系统日志的,这个命令同时支持日志过滤.日志记录到文件,并支持自动日志文件滚动.控制日志文件大小.因此,我们在系统启动的时候,用Runtime调用一下logcat命令,启动一个进程,就可以把我们通过Logcat发的日志记录到

C#错误异常日志记录到文件

当我们将网站布署到线上之后,为了实时了解网站的运行情况,如是否有错误页面.网站运行速度.是否有攻击等.那么我们就很有必要为网站加上错误与异常记录到日志文件,这样就可以随时查看网站的线上运行情况,另有一个好处是当网站有运行错误页面时,根据错误日志我们可以快速到定位到错误行进行排查原因.解决问题,这个是对于运行在线上而不能调试的网站的一个非常有必要的功能. 具体实现方法: 在全局文件Global.asax.cs中添加Application_Error的方法.只要当程序有错误时程序就会自动执行该方法,

shell脚本中自定义日志记录到文件

自定义日志函数和前期变量 # adirname - return absolute dirname of given file adirname() { odir=`pwd`; cd `dirname $1`; pwd; cd "${odir}"; } MYNAM=`basename "$0"` MYDIR=`adirname "$0"` MYHOME="/home/shell/script" MYLOG_PATH="

介绍一个日志记录函数

框架的好处之一是有完整的日志记录系统,但都只是针对框架本身的,比如记录数据库调用信息,记录表单值和框架方法之间的参数和返回值等.但是如果项目之间涉及到跨平台,这个日志系统就显得微乎其微了.比如我之前参加的一个项目,主要是使用PHP来编写前段,包含几乎全部的业务逻辑,但是不需要操作数据库,因为操作数据库的所有事情都交给Java语言去实现了.而我们PHP组编写代码的其实只有6个人,但是给我们提供数据库操作的Java组就有30 多个人,按道理应该很容易将这个项目做出来.也只有经历过才觉得这之间的痛苦,

C#Log4net日志记录组件的使用

一.Log4Net介绍 Log4net是基于.NET开发的一款非常著名的记录日志开源组件.它通过一套XML配置的日志引擎,将日志分不同的等级,分别是:FATAL . ERROR. WARN. INFO . DEBUG.ALL(允许所有的日志请求)和OFF(拒绝所有的日志请求),缺省为DEBUG,前五个可以看到和我们平常在调试应用程序的出错有点类似,在编译器中也会留下如错误.警告之类的提示信息,它们的错误级别不断的降低. 我们接着看Log4net的核心组成部分,Log4net主要由五个部分组成,分

Yii2 将日志记录到数据库中

Yii2默认日志记录到文件中,通过配置log组件来重新将日志保存到数据库中 打开config目录下console.php文件,修改log配置 'log' => [ 'targets' => [ [ 'class' => 'yii\log\DbTarget', 'levels' => ['error', 'warning'], ], ], ], 打开cmd 命令行,进入Yii根目录,开始创建数据库 yii migrate [email protected]/log/migration

Log4Net异常日志记录在asp.net mvc3.0的应用

前言 log4net是.Net下一个非常优秀的开源日志记录组件.log4net记录日志的功能非常强大.它可以将日志分不同的等级,以不同的格式,输出到不同的媒介.本文主要是简单的介绍如何在Visual Studio2010(Asp.Net Mvc3.0)中使用log4net快速创建系统日志,如何扩展以输出自定义字段. 用户可以从http://logging.apache.org/log4net/下载log4net的源代码.解压软件包后,在解压的src目录下将log4net.sln载入Visual

改进的日志记录类

相对之前发的日志记录来说,此类将程序记录处理与写磁盘操作分离,用户代码部分,将日志放到队列,并通知线程将日志写到文件: 1.公共类: using System;using System.IO;using System.Collections.Generic;using static System.Console;using System.Text;using System.Diagnostics; namespace LogWriter{    /// <summary>    /// 日志类

log4j教程 7、日志记录级别

org.apache.log4j.Level类提供以下级别,但也可以通过Level类的子类自定义级别. Level 描述 ALL 各级包括自定义级别 DEBUG 指定细粒度信息事件是最有用的应用程序调试 ERROR 错误事件可能仍然允许应用程序继续运行 FATAL 指定非常严重的错误事件,这可能导致应用程序中止 INFO 指定能够突出在粗粒度级别的应用程序运行情况的信息的消息 OFF 这是最高等级,为了关闭日志记录 TRACE 指定细粒度比DEBUG更低的信息事件 WARN 指定具有潜在危害的情