1.导入log4j包
2.在resources下建立log4j.properties
1. 配置文件
Log4J配置文件的基本格式如下:
#配置根Logger
log4j.rootLogger = [ level ] , appenderName1 , appenderName2 , …
#配置日志信息输出目的地Appender
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
…
log4j.appender.appenderName.optionN = valueN
#配置日志信息的格式(布局)
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
…
log4j.appender.appenderName.layout.optionN = valueN
其中 [level] 是日志输出级别,共有5级:
FATAL 0
ERROR 3
WARN 4
INFO 6
DEBUG 7
Appender 为日志输出目的地,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
Layout:日志输出格式,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
打印参数: Log4J采用类似C语言中的printf函数的打印格式格式化日志信息,如下:
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss ,SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10)
2. 在代码中初始化Logger:
1)在程序中调用BasicConfigurator.configure()方法:给根记录器增加一个ConsoleAppender,输出格式通过PatternLayout设为"%-4r [%t] %-5p %c %x - %m%n",还有根记录器的默认级别是Level.DEBUG.
2)配置放在文件里,通过命令行参数传递文件名字,通过PropertyConfigurator.configure(args[x])解析并配置;
3)配置放在文件里,通过环境变量传递文件名等信息,利用log4j默认的初始化过程解析并配置;
4)配置放在文件里,通过应用服务器配置传递文件名等信息,利用一个特殊的servlet来完成配置。
3. 为不同的 Appender 设置日志输出级别:
当调试系统时,我们往往注意的只是异常级别的日志输出,但是通常所有级别的输出都是放在一个文件里的,如果日志输出的级别是BUG!?那就慢慢去找吧。
这时我们也许会想要是能把异常信息单独输出到一个文件里该多好啊。当然可以,Log4j已经提供了这样的功能,我们只需要在配置中修改Appender的Threshold 就能实现,比如下面的例子:
[配置文件]
### set log levels ###
log4j.rootLogger = debug , stdout , D , E
### 输出到控制台 ###
log4j.appender.stdout = org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target = System.out
log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern = %d{ABSOLUTE} %5p %c{ 1 }:%L - %m%n
### 输出到日志文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/log.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG ## 输出DEBUG级别以上的日志
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
### 保存异常信息到单独文件 ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/error.log ## 异常日志文件名
log4j.appender.D.Append = true
log4j.appender.D.Threshold = ERROR ## 只输出ERROR级别以上的日志!!!
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
一般配置:
# log4j.rootCategory=DEBUG, stdout,logfile
log4j.rootLogger=INFO, stdout,logfile
#stdout configure
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-mm-dd hh:mm:ss} %p %l - %m%n
#logfile configure
log4j.appender.logfile=org.apache.log4j.DailyRollingFileAppender
log4j.appender.logfile.File=log4j.log
log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
log4j.appender.logfile.layout.ConversionPattern= =%d{yyyy-mm-dd hh:mm:ss} %p %l - %m%n
# Changing the log level to DEBUG when debug
log4j.logger.org.hibernate=INFO
log4j.logger.org.hibernate.cfg.HbmBinder=DEBUG
log4j.logger.org.hibernate.SQL=INFO
log4j.logger.org.hibernate.cache=DEBUG
log4j.logger.org.hibernate.transaction=DEBUG
log4j.logger.net.sf.ehcache=DEBUG
log4j.logger.org.apache.struts=DEBUG
分享到:
相关推荐
"ssh结合log4j例子"这个主题意味着我们将看到如何在使用SSH框架开发的应用程序中集成和使用Log4j进行日志管理。以下是一些可能的知识点: 1. **Spring集成Log4j**:Spring允许在配置文件中定义Log4j的日志级别和...
**日志框架Log4j详解** 日志是任何软件系统中的重要组成部分,它记录了程序运行过程中的事件、错误和调试信息,对于理解和排查问题至关重要。Log4j是Java平台上广泛使用的日志处理框架,由Apache软件基金会开发,...
在提供的"TestDom4jLog4j"项目中,应该包含了使用DOM4j处理XML和log4j记录日志的示例代码,通过阅读和运行这些代码,可以更好地理解DOM4j和log4j的使用方法。对于初学者来说,这是一个很好的实践和学习资源。
**标题:“log4j 例子全包括FileWatchdog”** 这个标题表明了我们要讨论的是一个与日志管理相关的示例,特别提到了`log4j`框架中的`FileWatchdog`功能。`log4j`是Java编程语言中最常用的一个日志记录库,它提供了...
**LOG4J简介** LOG4J是Apache软件基金会的一个开源项目,它是一个广泛使用的Java日志框架,为应用程序提供了一种灵活的日志记录机制。LOG4J的主要目标是使日志过程变得简单且高效,同时提供了丰富的日志级别、定制...
Log4j是一个广泛使用的日志记录框架,尤其在Java应用程序中。它允许开发者灵活地配置日志输出,以便根据需要捕获和管理不同级别的信息。本文将深入解析`log4j.properties`配置文件,以及如何配置Logger、Appender和...
log4j配置文件例子,可以让你轻松配置log4j
**日志框架Log4j详解** 日志框架在软件开发中扮演着至关重要的角色,它帮助开发者记录应用程序的运行情况,便于调试、监控和问题排查。Log4j是Apache组织提供的一款广泛使用的Java日志框架,它具有高效、灵活、可...
在"Log4jDemo"这个例子中,我们将看到如何创建一个简单的Logger,设置日志级别,并将日志输出到控制台或文件。首先,在项目中引入log4j的依赖,然后创建`log4j.properties`配置文件,内容可能如下: ``` # 控制台...
本教程将通过一个实际的"Log4j应用例子"来深入讲解Log4j的基本用法和配置。 **1. Log4j的组件** Log4j主要包括三个核心组件:Logger(日志器)、Appender(输出端)和Layout(格式化器)。 - **Logger**: 日志器...
Log4j是Apache提供的一款强大的日志处理框架,它灵活且功能强大,广泛应用于各种Java项目中。本话题将深入探讨如何使用Log4j实现多文件输出打印,以及自定义日志的配置。 首先,我们要理解Log4j的基本工作原理。Log...
**Log4J配置实例(XML格式)** Log4J是一款广泛应用的日志记录框架,它为Java应用程序提供了灵活的日志记录功能。在Java开发中,日志记录是必不可少的一部分,可以帮助开发者跟踪程序运行状态,定位错误和调试代码...
这篇博客"Apache Commons Logging整合Log4j简单例子"显然会引导我们如何将ACL与Log4j集成,以便在我们的Java应用中使用Log4j作为日志记录器。Log4j是一款功能强大的日志框架,提供灵活的日志配置和多种输出选项,如...
1. **配置文件**:Log4j的配置文件通常是`log4j.properties`或`log4j.xml`,它定义了日志的级别(如DEBUG、INFO、WARN、ERROR、FATAL)、输出目的地(控制台、文件、数据库等)以及布局格式。 2. **日志类**:在...
在这个例子中,我们使用的是.log4j.properties。这个文件定义了Log4j的行为,包括设置日志级别(如DEBUG, INFO, WARN, ERROR, FATAL),定义Appender,以及指定Appender的输出目标。例如: ```properties # log4j....
Log4j是一款广泛使用的日志记录框架,尤其在Java应用程序中。它允许开发者灵活地控制日志信息的输出,包括输出格式、级别、目的地等。本示例将深入讲解如何利用Log4j的不同Appender来生成不同的日志文件,以满足不同...
### Log4j XML 配置详解与实例解析 在深入探讨`log4j.xml`配置文件之前,我们先简要了解Log4j框架。Log4j是Apache的一个开放源码项目,通过使用Log4j,我们可以控制日志信息输送的目的地(控制台、文件等)、日志...
**日志框架Log4j详解** 在Java编程中,日志记录是不可或缺的一部分,它用于追踪应用程序的运行状态,帮助开发者在出现问题时定位错误。Log4j是Apache组织开发的一个强大的、灵活的日志记录框架,它允许我们控制日志...
log4j配置.xls 常用log4j配置,一般可以采用两种方式,.properties和.xml