您好,欢迎来到九壹网。
搜索
您的当前位置:首页log4j

log4j

来源:九壹网
jsp-log4j 日志 简单用法笔记

博客分类:

其它

1、从官方网站下载

jakarta-log4j-1.2.1.tar.gz http://logging.apache.org/log4j/1.2/download.html 2、在eclipse中将log4j-1.2.1.jar复制到WebContent/WEB-INF/lib 下 3、在src下新建File,命名为 log4j.properties(不要改动)

4、在log4j.properties中写入配置文件(从帮助文档中复制一段,具体配置查看其他信息) 如:

Xml代码

1. log4j.rootLogger=debug, stdout, R 2.

3. log4j.appender.stdout=org.apache.log4j.ConsoleAppender

4. log4j.appender.stdout.layout=org.apache.log4j.PatternLayout 5.

6. # Pattern to output the caller's file name and line number.

7. log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n 8.

9. log4j.appender.R=org.apache.log4j.RollingFileAppender 10.log4j.appender.R.File=D:/example.log 11.

12.log4j.appender.R.MaxFileSize=100KB 13.# Keep one backup file

14.log4j.appender.R.MaxBackupIndex=1 15.

16.log4j.appender.R.layout=org.apache.log4j.PatternLayout 17.log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n

注:第7行可配置所生成日志文件位置

5、现在便可以使用了,如在某一个Servlet中使用:

Java代码

1. private static Logger loger=Logger.getLogger(AddServlet.class); //AddServlet.class为当前Servlet名 2.

3. loger.debug(\"用户使用了添加功能\"); 4. 5.

简介:

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件、甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。

Log4j配置:

第一步:加入log4j-1.2.8.jar到lib下。

第二步:在CLASSPATH下建立log4j.properties。内容如下:

#定义DEBUG优先级,R为日志输出目的的 log4j.rootLogger=DEBUG, R #设置日志输出类型,为文件类型

log4j.appender.R=org.apache.log4j.FileAppender #设置日志文件名my.log

log4j.appender.R.file=weather.log

#每次在文件尾写入新的日志信息 log4j.appender.R.Append=true #日志输出信息格式类型

log4j.appender.R.layout=org.apache.log4j.PatternLayout

#日志输出信息格式为 换行、换行、日期、优先级、[类名]、日志信息、换行

log4j.appender.R.layout.ConversionPattern=%n%n%d%p[%c]-%m%n

第三步:定义日志类Log.Java

package com.kyny.weather.log; import org.apache.log4j.Logger;

import org.apache.log4j.PropertyConfigurator; /** * 日志类 * @author zhoucan * */ public class Log { //Logger实例

public Logger logger = null; //将Log类封装为单例模式 private static Log log;

//构造函数,用于初始化Logger配置需要的属性 private Log() { //获得当前目录路径 String

filePath=this.getClass().getResource(\"/\").getPath(); //找到log4j.properties配置文件所在的目录(已经创建好) filePath=filePath.substring(1).replace(\"bin\ //获得日志类logger的实例

logger=Logger.getLogger(this.getClass());

//logger所需的配置文件路径

PropertyConfigurator.configure(filePath+\"log4j.properties\"); } public static Log getLogger() {

if(log != null) return log; else return new Log(); } }

第四步:使用Log

Java代码:

Log log = Log.getLogger(); log.logger.error(\"XXX\

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

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

可以尝试在 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库:http://logging.apache.org/log4j/2.x/download.html

根记录器的级别定义为DEBUG并连接appender命名为FILE。

appender FILE文件被定义为 org.apache.log4j.FileAppender 并写入到一个名为“log.out”位于 log 目录下。

定义的布局模式是 %m%n,这意味着打印日志消息之后自动加上一个换行符。

所以 log4j.properties 文件的内容如下:

# Define the root logger with appender file log = /usr/home/log4j

log4j.rootLogger = DEBUG, FILE

# Define the file appender

log4j.appender.FILE=org.apache.log4j.FileAppender log4j.appender.FILE.File=${log}/log.out

# Define the layout for file appender

log4j.appender.FILE.layout=org.apache.log4j.PatternLayout log4j.appender.FILE.layout.conversionPattern=%m%n

在Java程序中使用log4j:

下面的Java类是一个非常简单的例子,Java应用程序初始化,然后使用Log4J日志库。

import org.apache.log4j.Logger;

import java.io.*;

import java.sql.SQLException; import java.util.*;

public class log4jExample{

/* Get actual class name to be printed on */ static Logger log = Logger.getLogger(

log4jExample.class.getName());

public static void main(String[] args) throws IOException,SQLException{

log.debug(\"Hello this is an debug message\"); log.info(\"Hello this is an info message\"); } }

编译和运行:

下面是步骤编译并运行上述程序。确保在进行编译和执行之前,适当地设置PATH和CLASSPATH。

所有的库应该在 CLASSPATH 和 log4j.properties 文件应该在PATH可用。所以,做到以下几点:

  

创建log4j.properties如上图所示。

创建log4jExample.java如上图所示,并对其进行编译。 执行log4jExample二进制运行程序。

在里面 /usr/home/log4j/log.out 文件会得到下面的结果:

Hello this is an debug message Hello this is an info message

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- 91gzw.com 版权所有 湘ICP备2023023988号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务