Log4J的配置文件(Configuration File)就是用来设置记录器的级别、存放器和布局的,它可接key=value格式的设置或xml格式的设置信息。通过配置,可以创建出Log4J的运行环境。
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
[代码中使用]
public class TestLog4j {
public static void main(String[] args) {
PropertyConfigurator.configure( " D:/Code/conf/log4j.properties " );
Logger logger = Logger.getLogger(TestLog4j. class );
logger.debug( " debug " );
logger.error( " error " );
}
}
运行一下,看看异常信息是不是保存在了一个单独的文件error.log中
分享到:
相关推荐
本文将详细介绍两种常见的 Log4j 配置方式:Tomcat 级别的统一日志管理和每个 web 应用分别配置 Log4j,并着重介绍第二种方法的具体步骤。 #### 一、Tomcat 级别的统一日志管理 这种方法适用于希望对整个 Tomcat ...
在 SSM 整合项目中,配置 Log4j.properties 文件是必不可少的步骤。该文件通常存放在项目的 src/main/resources 目录下。下面是一个基本的 Log4j.properties 配置文件: ``` log4j.rootLogger=DEBUG,console,file ...
配置Log4J是关键步骤,因为它决定了日志的输出级别、输出目的地、输出格式等多个方面。下面将详细介绍Log4J的配置。 **配置文件** Log4J的配置文件一般以.properties或.xml格式存在,用于定义日志行为。基本的配置...
### log4j配置与使用方法 #### 一、log4j简介 log4j是Apache的一个开源项目,通过使用log4j,开发者能够控制日志信息的生成、等级以及输出的目的地。它允许用户根据不同的环境调整日志的级别,从而帮助开发者在...
本文将详细介绍Log4j的配置和使用,助你更好地理解和掌握这一强大的日志工具。 1. **配置根Logger** 在Log4j中,根Logger是所有Logger的默认父Logger,它的设置会影响到所有没有明确配置的日志记录器。配置根...
本文将详细介绍如何在 Tomcat 6 上配置 Log4j。 #### 二、准备工作 在进行配置前,请确保以下条件已满足: 1. **安装 JDK**:确保服务器上已经安装了 JDK,并且版本符合 Tomcat 6 的要求。 2. **Tomcat 安装**:...
本文将详细介绍如何配置Log4J,包括下载安装、配置Logger组件、配置Appender组件以及配置Layout组件等。 #### 二、下载安装 1. **下载**:首先,需要从Apache官方网站或其他可靠的源下载Log4J的最新版本,下载得到...
三、Log4j配置文件 Log4j的灵活性很大程度上体现在其配置文件中,通常命名为`log4j.properties`或`log4j.xml`。配置文件定义了日志记录的行为,包括日志级别、输出目的地、格式等。在提供的`log4j.txt`文件中,我们...
本文将通过一份示例文档来详细解析 Log4j 的日志配置方法。 #### 二、安装与配置 ##### 1. 安装 Log4j 包 首先,你需要下载并安装 Log4j。本示例中使用的是 `log4j-1.2.8.jar` 这个版本。将其复制到项目中的 `WEB...
### Log4j 详细配置说明 #### 一、Log4j 简介与特性 在当前强调可重用组件的软件开发环境中,Apache 的 Log4j 为开发者提供了强大的日志管理工具。Log4j 不仅开源免费,还具备高度的灵活性与可配置性,支持多种...
本篇将详细介绍如何配置Log4j来将日志信息存储到MySQL数据库中,以实现日志的集中管理和分析。 首先,我们需要了解Log4j的基本结构。Log4j主要由三个组件构成:Logger(日志器)、Appender(输出端)和Layout(布局...
配置log4jdbc-log4j2主要包括以下几个步骤: 1. 添加依赖:在项目中引入log4jdbc-log4j2和log4j2的依赖库,通常是在pom.xml文件中添加对应的Maven坐标或在build.gradle文件中添加Gradle依赖。 2. 配置数据源:在...
在Web应用中,如使用的是Servlet环境,可以通过在`web.xml`中配置`ContextLoaderListener`来加载Log4j配置,同时,我们还可以创建一个Servlet,当接收到特定请求时,更新Log4j配置。 ```xml <!-- web.xml 示例 --> ...
本文将详细探讨Log4j的使用,主要关注1.2.17版本的jar包以及配置文件`log4j.properties`。 ### 1. Log4j简介 Log4j是一个开源的日志组件,支持多种输出格式,如控制台、文件、数据库等。它的核心概念包括Logger、...
在本文中,我们将详细介绍 Log4j 的配置,包括配置步骤、log4j.properties 配置文件、日志输出级别、appenders 和 layouts 等。 一、配置步骤 要使用 Log4j,需要遵循以下配置步骤: 1. 在应用程序中使用 Log4j,...
最后,为了使Spring与log4j集成,我们需要在`web.xml`(对于Web应用)或`context.xml`(对于非Web应用)中引入log4j的初始化参数,确保在应用启动时加载log4j配置: ```xml <param-name>log4jConfigLocation ...
总结,理解并熟练使用`log4j.properties`配置文件,是掌握Log4j的关键步骤。通过合理配置,我们不仅可以获取到所需的日志信息,还能优化系统的资源使用,确保应用程序的健康运行。同时,将Log4j与ORM框架如Hibernate...
#### log4j配置 在Java应用中,我们可以通过修改`log4j.properties`文件来集成syslog。具体步骤如下: 1. 在`log4j.rootLogger`中增加一个新的appender,例如命名为`syslog`。 2. 设置appender的相关属性: ```...
2. 设置 JVM 参数:在每个服务器的启动命令行中,添加 `-Dlog4j.configuration` 或 `-DLOG4J.CONFIGURATION` 参数,指明该服务器应使用的特定 Log4j 配置文件,例如 `-Dlog4j.configuration=log4jserver1.properties...
在IT行业中,日志管理是系统...通过以上步骤,你可以在Tomcat 8.0.30中成功配置Log4j,实现日志按天分割和保存,从而更好地管理和分析服务器运行时的日志数据。这个过程对于提升系统的可维护性和故障排查效率至关重要。