Log4j由三个重要的组件构成:日志信息的优先级,日志信息的输出目的地,日志信息的输出格式。日志信息的优先级从高到低有ERROR、WARN、INFO、DEBUG,分别用来指定这条日志信息的重要程度;日志信息的输出目的地指定了日志将打印到控制台还是文件中;而输出格式则控制了日志信息的显示内容。
1、定义配置文件
其实您也可以完全不使用配置文件,而是在代码中配置Log4j环境。但是,使用配置文件将使您的应用程序更加灵活。
Log4j支持两种配置文件格式,一种是Java特性文件(键=值),一种是XML格式的文件。下面我们介绍使用Log4j配置文件的方法:
配置根Logger,其语法为:
log4j.rootLogger = [ level ] , appenderName, appenderName, …
其中,level 是日志记录的优先级,分为OFF、FATAL、ERROR、WARN、INFO、DEBUG、ALL或者您定义的级别。Log4j建议只使用四个级别,优先级从高到低分别是ERROR、WARN、INFO、DEBUG。通过在这里定义的级别,您可以控制到应用程序中相应级别的日志信息的开关。比如在这里定义了INFO级别,则应用程序中所有DEBUG级别的日志信息将不被打印出来。
appenderName就是指定日志信息输出到哪个地方。您可以同时指定多个输出目的地。
配置日志信息输出目的地Appender,其语法为
log4j.appender.appenderName = fully.qualified.name.of.appender.class
log4j.appender.appenderName.option1 = value1
…
log4j.appender.appenderName.optionN = valueN
其中,Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台)
org.apache.log4j.FileAppender(文件)
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
配置日志信息的格式(布局),其语法为:
log4j.appender.appenderName.layout = fully.qualified.name.of.layout.class
log4j.appender.appenderName.layout.option1 = value1
…
log4j.appender.appenderName.layout.optionN = valueN
其中,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局)
org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)
2、在代码中使用Log4j
下面将讲述在程序代码中怎样使用Log4j。
i、得到记录器使用Log4j,第一步就是获取日志记录器,这个记录器将负责控制日志信息。其语法为: public static Logger getLogger( String name),通过指定的名字获得记录器,如果必要的话,则为这个名字创建一个新的记录器。Name一般取本类的名字,比如: static Logger logger = Logger.getLogger ( ServerWithLog4j.class.getName () ) ;
ii、读取配置文件当获得了日志记录器之后,第二步将配置Log4j环境,其语法为: BasicConfigurator.configure ():自动快速地使用缺省Log4j环境。 PropertyConfigurator.configure ( String configFilename) :读取使用Java的特性文件编写的配置文件。 DOMConfigurator.configure ( String filename ) :读取XML形式的配置文件。
iii、插入记录信息(格式化日志信息)当上两个必要步骤执行完毕,您就可以轻松地使用不同优先级别的日志记录语句插入到您想记录日志的任何地方,其语法如下:
Logger.debug ( Object message ) ;
Logger.info ( Object message ) ;
Logger.warn ( Object message ) ;
Logger.error ( Object message ) ;
iv、代码例子注释:蓝色–文件名红色–用到log4j的地方
Hello.java
import org.apache.log4j.*;
public class Hello {
static Logger logger = Logger.getLogger(Hello.class);
public static void main(String argv[]) {
PropertyConfigurator.configure("Hello.properties");
logger.debug("Hello world.");
logger.info("What a beatiful day.");
try {
// 假如这里出现了异常
throw new NullPointerException();
} catch (Exception e) {
logger.warn("NullPointerException", e);
}
}
}
log4j.properties
log4j.rootLogger=debug, stdout, R
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
# Pattern to output the caller's file name and line number.
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n
#log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=example.log
log4j.appender.R.MaxFileSize=100KB
# Keep one backup file
log4j.appender.R.MaxBackupIndex=1
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
相关推荐
log4j-config.jar, log4j-core-2.0.2-javadoc.jar, log4j-core-2.0.2-sources.jar, log4j-core-2.0.2-tests.jar, log4j-core-2.0.2.jar, log4j-core.jar, log4j-ext.jar, log4j-flume-ng-2.0.2-javadoc.jar, log4j-...
Log4j是Apache的一个开源项目,它为Java应用程序提供了一个灵活的日志系统。这个系统能够帮助开发者记录程序运行过程中的各种信息,包括错误、警告、调试信息等,这对于软件的调试、性能分析以及问题追踪非常有帮助...
logging.config=classpath:log4j.properties ``` ### SpringBoot与Log4j2 Log4j2作为Log4j的升级版,提供更好的性能和更丰富的特性,如异步日志记录,JSON布局,以及可插拔的日志配置。 #### 配置Log4j2 1. **...
### log4j配置文件详解 #### 一、日志记录器简介与日志级别 **日志记录器**(Logger)作为日志处理系统的核心组件,在log4j中扮演着关键角色。它负责接收应用程序产生的日志信息,并根据配置决定是否记录以及如何...
标题"Log4J-config.rar_log4j java"暗示了这是一个关于Log4J配置的压缩文件,其中可能包含与Java编程相关的Log4J配置示例和手册。Log4J是Apache软件基金会的一个开源项目,它提供了一个灵活的日志框架,广泛应用于...
2. `org.apache.log4j.config`: 配置相关的类,如PropertyConfigurator和DOMConfigurator,负责读取和解析配置文件。 3. `org.apache.log4j.helpers`: 辅助类,如DateFormatter、FormattingInfo等,提供了一些通用...
标题中的“log4jdbc-log4j2配置简记”指的是在Java开发中使用log4jdbc-log4j2库来监控和记录SQL查询的过程。log4jdbc是一个开源项目,它允许开发者通过日志系统来追踪数据库操作,而log4j2是log4j的升级版,提供了更...
String file = config.getInitParameter("log4j"); String filePath = prefix + file; Properties props = new Properties(); try { FileInputStream istream = new FileInputStream(filePath); props.load...
在Spring项目中配置log4j是一项基础且重要的工作,它能帮助我们记录应用程序的运行日志,便于调试、排查问题和性能分析。Log4j是一个广泛使用的Java日志框架,提供灵活的日志记录功能。接下来,我们将详细讲解如何在...
当设置好字符编码后,`WriterAppender`的`setEncoding`方法会被调用,这个方法由`org.apache.log4j.config.PropertySetter`类中的`setProperties`方法触发。`PropertySetter`会解析配置文件中的属性,并将它们设置到...
在 MyBatis 的配置文件 `mybatis-config.xml` 中,我们需要指定日志工厂为 Log4j: ```xml ... ... <setting name="logImpl" value="LOG4J"/> ... ``` 4. **使用日志** 在 MyBatis 的映射文件...
Log4j的配置文件通常是`log4j.properties`或`log4j.xml`,在这里你可以设置不同级别的日志输出,例如DEBUG、INFO、WARN、ERROR等。 对于Ibatis,这是一个轻量级的持久层框架,它将SQL语句与Java代码分离,提供了...
1. **log4j-spring-cloud-config**:这是一个集成Spring Cloud Config的服务,允许开发者在分布式环境中动态配置Log4j的设置。2.15.0-rc2版本可能会对这部分的配置管理和动态更新机制进行优化,确保在大规模微服务...
在项目中,"springBootMybatis"这个压缩包文件可能包含了以下内容:Spring Boot的启动类、MyBatis的相关配置(如`mybatis-config.xml`)、Mapper接口及对应的XML映射文件、实体类、服务层接口和实现、以及Log4j2的...
<bean id="log4jInitialization" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean"> <property name="staticMethod" value="org.apache.log4j.LogManager.getLoggerRepository"/> ...
2. 添加依赖:除了`log4j-1.2.15.jar`之外,还需要添加`slf4j-log4j12-1.6.4.jar`,这个桥接包使得SLF4J能够使用Log4j进行日志记录。 3. 更新日志器设置:在Java类中,使用SLF4J的日志器接口,同样替换`...
Spring框架是Java领域广泛使用的轻量级框架,而Log4j则是日志记录领域的经典工具,提供了丰富的日志配置和管理功能。本实例结合Spring和Log4j,将为你提供一个实用的日志解决方案。 首先,我们要理解Spring是如何...
在Java开发中,c3p0和log4j是两个非常关键的库,它们分别用于数据库连接池管理和日志记录。下面将详细讲解这两个库的配置及其重要性。 首先,c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,可以极大地...
本教程将详细阐述如何使用四个关键组件——Maven、SpringMVC、MyBatis和Log4j——来搭建一个强大的Web应用框架,旨在提高开发效率并优化项目管理。 **Maven** 是一个流行的项目管理和综合工具,它通过统一的构建...
2. `<param-name>log4jConfigLocation</param-name>` 指定了Log4j配置文件的路径,这里是`WEB-INF/config/log4j.properties`。这个配置告诉Web应用在哪里寻找Log4j的配置信息。 3. `<param-name>log4...