`

介绍Log4j日志的使用

阅读更多

在开发应用的过程中,日志可以用于调试程序、跟踪程序的运行轨迹。在程序运行过程中,可以记录程序的运行状态,并用于审计。
日志有多种实现,Log4j是一种比较流行的实现。本文介绍Log4j日志的使用。
Log4j日志的使用包括如下过程:
l 获取日志的实现;
l 编写配置文件;
l 初始化;
l 使用。
下面分别进行介绍。
1、获取日志实现
日志实现通常位于压缩包中,压缩包的名字log4j-1.2.15.jar,存放的位置:WEB-INF/lib下面。最新版本可以从官方网站下载。
2、配置
要使用Log4j需要先进行配置,日志的配置需要使用配置文件,可以采用属性文件也可以采用XML文件,本文介绍的实例采用属性文件。属性文件的位置:WEB-INF下面,名字为:log4j.properties。
日志文件的主要内容:
1)设置跟记录器
设置根记录器的基本格式如下:
log4j.rootLogger=debug,R
等号后面包括两个信息:日志级别和日志目的。
日志级别包括:OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL
日志目的可以是任意的名字,可以有多个。
2)设置日志的类型
日志的类型包括:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
rg.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
设置日志的类型可以使用下面的代码:
log4j.appender.R=org.apache.log4j.RollingFileAppender
3)设置日志文件的相关属性
如果日志的类型是文件,需要指出文件的位置,通过如下方式指出:
log4j.appender.R.File=${catalina.home}/logs/my.log
日志文件的大小通过如下方式制定:
log4j.appender.R.MaxFileSize=10MB
日志文件重复数
log4j.appender.R.MaxBackupIndex=10
4)日志文件的输出方式
常用日志的输出方式如下:
org.apache.log4j.HTMLLayout
org.apache.log4j.PatternLayout
org.apache.log4j.SimpleLayout
org.apache.log4j.TTCCLayout
下面的代码用于设置文件输出方式:
log4j.appender.R.layout=org.apache.log4j.PatternLayout
5)日志文件的输出格式
如果使用PatternLayout,可以使用下面的格式符号。
%r 自程序开始后消耗的毫秒数
%t 表示日志记录请求生成的线程
%p 表示日志语句的优先级别
%r 与日志请求相关的类别名称
%c 日志信息所在的类
%m%n 表示日志信息的内容
例如:
log4j.appender.R.layout.ConversionPattern=%p %t %c -%m%n
下面是一个完整的配置文件的内容(#表示注释):
# debug表示日志的级别,R表示其中一个日志,名字可以随便取
log4j.rootLogger=debug, R

#日志的类型
log4j.appender.R=org.apache.log4j.RollingFileAppender

#日志的文件
log4j.appender.R.File=${catalina.home}/logs/my.log

#日志文件的大小
log4j.appender.R.MaxFileSize=10MB

#日志文件的
log4j.appender.R.MaxBackupIndex=10

#输出方式
log4j.appender.R.layout=org.apache.log4j.PatternLayout

#具体输出方式
log4j.appender.R.layout.ConversionPattern=%p %t %c -%m%n
3、初始化
可以使用多种方式进行初始化,过程基本相同。下面是采用Servlet进行初始化的例子,参考代码如下:
Servlet源文件:
package bookstore.servlet;

import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;

import org.apache.log4j.PropertyConfigurator;

public class Log4JServlet extends HttpServlet{

public void init() throws ServletException{
String path = getServletContext().getRealPath("/");
String filename = path+"/WEB-INF/log4j.properties";
PropertyConfigurator.configure(filename);
}
}
为了让Web应用启动的时候加载该Servlet,需要在web.xml中配置元素。参考代码如下:
web.xml中的声明:


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
version="2.4"]


log4j
bookstore.servlet.Log4JServlet
1

 

log4j
/log4j


4、调用
日志配置完并初始化之后,就可以使用了。使用过程主要就是获取日志器,然后调用相应的方法即可。
获取日志器的方法如下:
Logger Logger.getLogger(String str)
参数相当于指出日志的类别,返回值是Logger对象。
Logger对象用于输出日志信息的方法如下:
fatal(String info)
error(String info)
warn(String info)
info(String info)
debug(String info)
注意:在使用的时候需要导入org.apache.log4j.Logger。
下面是一个使用Log4j的例子:

 

运行结果如下:(格式为%p %t %c -%m%n):
DEBUG http-8080-1 testLogger - debug message
ERROR http-8080-1 testLogger - error message
WARN http-8080-1 testLogger - warn message
INFO http-8080-1 testLogger - info message
FATAL http-8080-1 testLogger - fatal message

5、扩展知识
正常情况下日志的使用不是在JSP文件中,而是在业务层、或者控制层,并且使用日志的文件会有很多,所以通常在基类中创建Logger对象,然后在各个子类中直接使用各个输出信息的方法即可。

分享到:
评论

相关推荐

    SSM整合中的Log4j日志的配置详情

    Log4j 是一个功能强大且广泛使用的日志记录工具,特别是在 SSM(Spring、Spring MVC、Mybatis)整合项目中,合理地配置 Log4j 对项目的日志记录和输出至关重要。本文将详细介绍 SSM 整合中的 Log4j 配置详情,帮助...

    tomcat下的log4j日志配置

    在使用 Apache Tomcat 作为服务器时,合理配置日志框架(如 Log4j)能够极大地提高开发效率和系统的可维护性。本文将详细介绍两种常见的 Log4j 配置方式:Tomcat 级别的统一日志管理和每个 web 应用分别配置 Log4j,...

    log4j使用与java中log4j记录日志如何写入数据库

    本文将详细介绍如何在Java中使用Log4j来记录日志,并将其写入数据库。 首先,我们需要了解Log4j的基本结构。一个简单的Log4j项目通常包含以下几个部分: 1. **配置文件**:Log4j的配置文件通常是`log4j.properties...

    log4j日志报错解决办法

    Log4j 是一款广泛使用的Java日志记录框架,它提供了灵活的日志配置和丰富的日志级别,便于开发者调试和监控应用程序。在Java开发过程中,如果遇到"log4j:WARN Please initialize the log4j system properly"这样的...

    Log4j日志配置说明,Log4j日志配置说明

    ### Log4j日志配置详解 #### 一、概述 Log4j 是一个基于 Java 的开源日志记录框架,由 Apache 软件基金会维护。它允许开发人员根据等级记录日志信息,使得用户能够控制日志信息的记录级别及去向。本文将通过一份...

    使用log4j2实现日志数据脱敏

    本文将详细介绍如何使用Log4j2实现日志数据脱敏。 一、Log4j2简介 Log4j2是Apache软件基金会开发的日志框架Log4j的升级版,它具有更高的性能、灵活性和可配置性。Log4j2支持多种日志记录级别(如DEBUG、INFO、WARN...

    log4j日志配置以及配置文件详解

    这是log4j框架的配置文件,使用Java Properties格式,用于定义日志输出的行为。主要包括以下几个核心部分: 1. **Logger**: 定义日志级别,例如DEBUG、INFO、WARN、ERROR和FATAL。日志级别决定了哪些信息会被记录。...

    log4j按功能保存日志

    Log4j是一款广泛使用的Java日志记录框架,它允许开发者按照功能模块或特定需求记录应用程序运行过程中的事件信息。在“log4j按功能保存日志”的场景中,我们通常会利用Log4j的配置灵活性,将不同功能的日志分别写入...

    log4j日志的基本使用

    ### Log4j日志框架基本使用详解 #### 一、Log4j概述 Log4j是Apache的一个开源项目,被广泛应用于Java应用中作为日志记录工具。它提供了一个简单而强大的日志记录机制,可以帮助开发者高效地追踪程序运行过程中的...

    log4j日志包日志包

    在Java编程语言中,`log4j`是一个广泛使用的日志记录框架,因其强大的功能和灵活性而备受推崇。 **log4j简介** `log4j`是由Apache软件基金会开发的一个开源的日志组件,它为Java应用程序提供了一种灵活、高效和可...

    log4j自定义日志文件名及日志输出格式

    Log4j是Apache提供的一款广泛使用的日志框架,它提供了丰富的配置选项,允许开发者灵活地控制日志输出。当我们面对特定项目需求,比如需要自定义日志文件名和日志输出格式时,Log4j同样提供了相应的解决方案。 首先...

    tomcat6.0 配log4j日志的必须文件及配置过程

    tomcat6.0 配log4j日志的必须文件及配置过程 tomcat6-------lib | |--------tomcat-juli-adapters.jar | |--------log4j.jar | |--------log4j.properites | |----bin |--------tomcat-juli.jar 最后把log4...

    log4j日志jar包

    本文将详细探讨Log4j日志jar包的功能、使用方法以及其在实际项目中的重要性。 1. **Log4j的基本概念** Log4j是一个灵活且功能强大的日志库,它提供了丰富的配置选项,可以控制日志信息的输出级别(如DEBUG、INFO...

    log4j日志文件乱码解决方法

    本文将详细讨论如何解决Log4j日志文件出现的乱码问题。 首先,我们要理解Log4j的工作原理。Log4j允许开发者自定义日志输出的方式,包括输出到控制台、文件、数据库等。它使用了`QuietWriter`类来写入日志,`...

    tomcat8更换log4j记录日志

    下面将详细介绍如何在Tomcat8中替换或更新Log4j来记录日志。 首先,让我们了解一下Log4j。Log4j是Apache软件基金会的一个开源项目,它为Java应用程序提供了一种灵活的日志记录方案。Log4j的优点包括可配置性、性能...

    log4J日志.zip

    在“log4j日志.zip”压缩包中,包含的可能是Log4j的配置文件(如log4j.properties或log4j.xml)。这个文件定义了日志的级别、输出位置和格式。例如: ```properties # log4j.properties 示例 log4j.rootLogger=...

    AndroidStudio 使用log4j记录日志,按照大小定期滚动日志Demo

    本文将详细介绍如何在Android Studio中使用log4j库来记录日志,并实现按照日志文件大小自动滚动的功能,以及如何进行日志内容的格式化输出。 首先,log4j是一款广泛使用的日志记录框架,它提供了灵活的日志配置和...

    示范如何在android工程中使用log4j记录日志

    Log4j是一个广泛使用的Java日志框架,它提供了强大的日志处理功能,包括日志级别控制、自定义日志格式、多路复用等。然而,由于Android系统对第三方库的限制,直接在Android工程中使用Log4j需要一些额外的步骤。本文...

    老生常谈Log4j和Log4j2的区别(推荐)

    然后使用Logger.getLogger()方法获取日志记录器,而Log4j2需要import org.apache.logging.log4j.Level、org.apache.logging.log4j.LogManager和org.apache.logging.log4j.Logger,使用LogManager.getLogger()方法...

    log4j 日志打印

    《深入理解Log4j日志打印》 在Java开发领域,日志打印是不可或缺的一环,它对于系统调试、性能监控、故障排查等都起着至关重要的作用。Log4j作为Java中最常用的日志框架之一,深受广大开发者喜爱。本文将深入探讨...

Global site tag (gtag.js) - Google Analytics