from:http://coderdream.iteye.com/blog/378077
两个必要步骤执行完毕,您就可以轻松地使用不同优先级别的日志记录语句插入到您想记录日志的任何地方,其语法如下:
Logger.debug ( Object message ) ;
Logger.info ( Object message ) ;
Logger.warn ( Object message ) ;
Logger.error ( Object message ) ;
示例2~示例8
【示例2】 输出为文本文件或HTML文件
- #设置级别:
- log4j.rootLogger=debug,appender1
-
- #输出到文件(这里默认为追加方式)
- log4j.appender.appender1=org.apache.log4j.FileAppender
- #设置文件输出路径
-
#【1】文本文件
- #log4j.appender.appender1.File=c:/Log4JDemo02.log
-
#【2】HTML文件
- log4j.appender.appender1.File=c:/Log4JDemo02.html
- #设置文件输出样式
- #log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
- log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout
#设置级别:
log4j.rootLogger=debug,appender1
#输出到文件(这里默认为追加方式)
log4j.appender.appender1=org.apache.log4j.FileAppender
#设置文件输出路径
#【1】文本文件
#log4j.appender.appender1.File=c:/Log4JDemo02.log
#【2】HTML文件
log4j.appender.appender1.File=c:/Log4JDemo02.html
#设置文件输出样式
#log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
log4j.appender.appender1.layout=org.apache.log4j.HTMLLayout
【 示例3】 输出为文本文件或HTML文件
- #设置级别和多个目的地
- log4j.rootLogger=debug,appender1,appender2
-
- #输出到控制台
- log4j.appender.appender1=org.apache.log4j.ConsoleAppender
- #设置输出样式
- log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
-
- #输出到文件(这里默认为追加方式)
- log4j.appender.appender2=org.apache.log4j.FileAppender
- #设置文件输出路径
-
#【1】文本文件
- #log4j.appender.appender2.File=c:/Log4JDemo02.log
-
#【2】HTML文件
- log4j.appender.appender2.File=c:/Log4JDemo02.html
- #设置文件输出样式
- #log4j.appender.appender2.layout=org.apache.log4j.TTCCLayout
- log4j.appender.appender2.layout=org.apache.log4j.HTMLLayout
#设置级别和多个目的地
log4j.rootLogger=debug,appender1,appender2
#输出到控制台
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
#设置输出样式
log4j.appender.appender1.layout=org.apache.log4j.TTCCLayout
#输出到文件(这里默认为追加方式)
log4j.appender.appender2=org.apache.log4j.FileAppender
#设置文件输出路径
#【1】文本文件
#log4j.appender.appender2.File=c:/Log4JDemo02.log
#【2】HTML文件
log4j.appender.appender2.File=c:/Log4JDemo02.html
#设置文件输出样式
#log4j.appender.appender2.layout=org.apache.log4j.TTCCLayout
log4j.appender.appender2.layout=org.apache.log4j.HTMLLayout
【示例4】 SimpleLayout样式
- #设置级别和目的地
- log4j.rootLogger=debug,appender1
-
- #输出到控制台
- log4j.appender.appender1=org.apache.log4j.ConsoleAppender
- #设置输出样式
- log4j.appender.appender1.layout=org.apache.log4j.SimpleLayout
#设置级别和目的地
log4j.rootLogger=debug,appender1
#输出到控制台
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
#设置输出样式
log4j.appender.appender1.layout=org.apache.log4j.SimpleLayout
输出结果:
- DEBUG - This is debug message.
- INFO - This is info message.
- ERROR - This is error message.
DEBUG - This is debug message.
INFO - This is info message.
ERROR - This is error message.
【示例5】 自定义样式
- #设置级别和目的地
- log4j.rootLogger=debug,appender1
-
- #输出到控制台
- log4j.appender.appender1=org.apache.log4j.ConsoleAppender
- #设置输出样式
- log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
- #自定义样式
-
# %r 时间 0
- # %t 方法名 main
- # %p 优先级 DEBUG/INFO/ERROR
- # %c 所属类的全名(包括包名)
- # %l 发生的位置,在某个类的某行
- # %m 输出代码中指定的讯息,如log(message)中的message
- # %n 输出一个换行
-
- log4j.appender.appender1.layout.ConversionPattern=%r [%t] [%p] - %c -%l -%m%n
#设置级别和目的地
log4j.rootLogger=debug,appender1
#输出到控制台
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
#设置输出样式
log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
#自定义样式
# %r 时间 0
# %t 方法名 main
# %p 优先级 DEBUG/INFO/ERROR
# %c 所属类的全名(包括包名)
# %l 发生的位置,在某个类的某行
# %m 输出代码中指定的讯息,如log(message)中的message
# %n 输出一个换行
log4j.appender.appender1.layout.ConversionPattern=%r [%t] [%p] - %c -%l -%m%n
输出结果:
- 0 [main] [DEBUG] - com.coderdream.log4j.HelloLog4j
-
-com.coderdream.log4j.HelloLog4j.main(HelloLog4j.java:16) -This is debug message.
-
31 [main] [INFO] - com.coderdream.log4j.HelloLog4j
-
-com.coderdream.log4j.HelloLog4j.main(HelloLog4j.java:18) -This is info message.
-
31 [main] [ERROR] - com.coderdream.log4j.HelloLog4j
-
-com.coderdream.log4j.HelloLog4j.main(HelloLog4j.java:20) -This is error message.
0 [main] [DEBUG] - com.coderdream.log4j.HelloLog4j
-com.coderdream.log4j.HelloLog4j.main(HelloLog4j.java:16) -This is debug message.
31 [main] [INFO] - com.coderdream.log4j.HelloLog4j
-com.coderdream.log4j.HelloLog4j.main(HelloLog4j.java:18) -This is info message.
31 [main] [ERROR] - com.coderdream.log4j.HelloLog4j
-com.coderdream.log4j.HelloLog4j.main(HelloLog4j.java:20) -This is error message.
【示例6】 多目的地、自定义样式
- #设置级别和目的地
- log4j.rootLogger=debug,appender1,appender2
-
- #输出到控制台
- log4j.appender.appender1=org.apache.log4j.ConsoleAppender
- #设置输出样式
- log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
- #自定义样式
-
# %r 时间 0
- # %t 方法名 main
- # %p 优先级 DEBUG/INFO/ERROR
- # %c 所属类的全名(包括包名)
- # %l 发生的位置,在某个类的某行
- # %m 输出代码中指定的讯息,如log(message)中的message
- # %n 输出一个换行符号
- log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss:SSS}][%C-%M] %m%n
-
- #输出到文件(这里默认为追加方式)
- log4j.appender.appender2=org.apache.log4j.FileAppender
- #设置文件输出路径
-
#【1】文本文件
- log4j.appender.appender2.File=c:/Log4JDemo06.log
- #设置文件输出样式
- log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
- log4j.appender.appender2.layout.ConversionPattern=[%d{HH:mm:ss:SSS}][%C-%M] -%m%n
#设置级别和目的地
log4j.rootLogger=debug,appender1,appender2
#输出到控制台
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
#设置输出样式
log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
#自定义样式
# %r 时间 0
# %t 方法名 main
# %p 优先级 DEBUG/INFO/ERROR
# %c 所属类的全名(包括包名)
# %l 发生的位置,在某个类的某行
# %m 输出代码中指定的讯息,如log(message)中的message
# %n 输出一个换行符号
log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss:SSS}][%C-%M] %m%n
#输出到文件(这里默认为追加方式)
log4j.appender.appender2=org.apache.log4j.FileAppender
#设置文件输出路径
#【1】文本文件
log4j.appender.appender2.File=c:/Log4JDemo06.log
#设置文件输出样式
log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.appender2.layout.ConversionPattern=[%d{HH:mm:ss:SSS}][%C-%M] -%m%n
【示例7】 【企业应用】设置 特定包的级别和目的地
先增加一个包,新建一个类:
- package com.coderdream.log4jDao;
-
-
import org.apache.log4j.Logger;
-
-
public class HelloDao {
-
private static Logger logger = Logger.getLogger(HelloDao.class);
-
-
-
-
-
public static void main(String[] args) {
-
-
logger.debug("This is debug message from Dao.");
-
-
logger.info("This is info message from Dao.");
-
-
logger.error("This is error message from Dao.");
- }
- }
package com.coderdream.log4jDao;
import org.apache.log4j.Logger;
public class HelloDao {
private static Logger logger = Logger.getLogger(HelloDao.class);
/**
* @param args
*/
public static void main(String[] args) {
// 记录debug级别的信息
logger.debug("This is debug message from Dao.");
// 记录info级别的信息
logger.info("This is info message from Dao.");
// 记录error级别的信息
logger.error("This is error message from Dao.");
}
}
如果这个类作为基类,如J2EE中的BaseDao、BaseAction、BaseService等等,则我们可以将各层的日志信息分类输出到各个文件。
- #省略根,只设置特定包的级别和目的地
- log4j.logger.com.coderdream.log4j=debug,appender1
- log4j.logger.com.coderdream.log4jDao=info,appender1,appender2
-
- #输出到控制台
- log4j.appender.appender1=org.apache.log4j.ConsoleAppender
- #设置输出样式
- log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
- #自定义样式
-
# %r 时间 0
- # %t 方法名 main
- # %p 优先级 DEBUG/INFO/ERROR
- # %c 所属类的全名(包括包名)
- # %l 发生的位置,在某个类的某行
- # %m 输出代码中指定的讯息,如log(message)中的message
- # %n 输出一个换行符号
- log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss:SSS}][%C-%M] %m%n
-
- #输出到文件(这里默认为追加方式)
- log4j.appender.appender2=org.apache.log4j.FileAppender
- #设置文件输出路径
-
#【1】文本文件
- log4j.appender.appender2.File=c:/Log4JDemo07_Dao.log
- #设置文件输出样式
- log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
- log4j.appender.appender2.layout.ConversionPattern=[%d{HH:mm:ss:SSS}][%C-%M] -%m%n
#省略根,只设置特定包的级别和目的地
log4j.logger.com.coderdream.log4j=debug,appender1
log4j.logger.com.coderdream.log4jDao=info,appender1,appender2
#输出到控制台
log4j.appender.appender1=org.apache.log4j.ConsoleAppender
#设置输出样式
log4j.appender.appender1.layout=org.apache.log4j.PatternLayout
#自定义样式
# %r 时间 0
# %t 方法名 main
# %p 优先级 DEBUG/INFO/ERROR
# %c 所属类的全名(包括包名)
# %l 发生的位置,在某个类的某行
# %m 输出代码中指定的讯息,如log(message)中的message
# %n 输出一个换行符号
log4j.appender.appender1.layout.ConversionPattern=[%d{yy/MM/dd HH:mm:ss:SSS}][%C-%M] %m%n
#输出到文件(这里默认为追加方式)
log4j.appender.appender2=org.apache.log4j.FileAppender
#设置文件输出路径
#【1】文本文件
log4j.appender.appender2.File=c:/Log4JDemo07_Dao.log
#设置文件输出样式
log4j.appender.appender2.layout=org.apache.log4j.PatternLayout
log4j.appender.appender2.layout.ConversionPattern=[%d{HH:mm:ss:SSS}][%C-%M] -%m%n
【示例8】 log4j.xml的配置方式
- <?xml version="1.0" encoding="UTF-8"?>
-
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
-
-
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
-
-
<appender name="appender1"
-
class="org.apache.log4j.RollingFileAppender">
-
<param name="File" value="logfile08.html" />
-
<param name="MaxFileSize" value="1MB" />
-
<param name="MaxBackupIndex" value="5" />
-
<layout class="org.apache.log4j.HTMLLayout">
-
</layout>
-
</appender>
-
-
<root>
-
<level value="debug" />
-
<appender-ref ref="appender1" />
-
</root>
-
</log4j:configuration>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="appender1"
class="org.apache.log4j.RollingFileAppender">
<param name="File" value="logfile08.html" />
<param name="MaxFileSize" value="1MB" />
<param name="MaxBackupIndex" value="5" />
<layout class="org.apache.log4j.HTMLLayout">
</layout>
</appender>
<root>
<level value="debug" />
<appender-ref ref="appender1" />
</root>
</log4j:configuration>
为了提高效率,我们可以在写日志前增加判断:
-
-
if (logger.isDebugEnabled()) {
-
logger.debug("This is debug message from Dao.");
- }
-
-
-
if (logger.isInfoEnabled()) {
-
logger.info("This is info message from Dao.");
- }
-
-
-
logger.error("This is error message from Dao.");
分享到:
相关推荐
**日志框架Log4j详解** 在Java开发中,日志记录是一项不可或缺的功能,它能够帮助开发者追踪程序运行状态,定位错误,优化性能,并为后期维护提供重要信息。Log4j是Apache组织开发的一个强大的、灵活的日志记录框架...
首先,创建`log4j.properties`文件是启动Log4j功能的第一步。这个文件通常放在项目的`classes`目录下,以确保在运行时可以被正确加载。Log4j支持两种配置格式:XML和Properties(键值对)。本篇主要关注Properties...
《log4j.properties 使用详解》 在Java开发中,日志记录是一项不可或缺的工作,它能够帮助开发者追踪程序运行状态,定位错误,优化性能。而log4j作为一款强大的日志框架,广泛应用于各种Java项目中。本文将详细介绍...
### log4j.properties配置文件详解 #### 一、概述 `log4j.properties`是Apache Log4j框架中用于配置日志记录行为的核心文件之一。通过这个文件,开发者可以定义日志消息的输出方式(例如控制台或文件)、日志级别...
### Log4j.properties配置详解 #### 一、Log4j配置文件基本概念 Log4j是一种广泛应用于Java应用程序的日志框架,它可以帮助开发者轻松管理应用程序的日志记录过程。Log4j支持多种配置方式,其中.properties文件...
Log4j 配置详解 Log4j 是一个流行的 Java 日志记录工具,提供了灵活的日志记录机制,能够满足不同的日志记录需求。在本文中,我们将详细介绍 Log4j 的配置,包括配置步骤、log4j.properties 配置文件、日志输出...
在Log4j.properties配置文件中,我们可以通过设置Logger、Appender和Layout来实现日志管理。 1. **Loggers** Loggers是Log4j中的关键组件,它们负责决定哪些信息应该被记录。Log4j提供了五个日志级别,从低到高...
**日志框架Log4j详解** 日志框架在软件开发中扮演着至关重要的角色,它帮助开发者记录程序运行过程中的信息,便于调试、追踪错误和分析系统性能。Log4j是Apache组织提供的一款广泛使用的Java日志框架,因其灵活性、...
二、`log4j.properties`配置详解 1. 设置全局日志级别: ``` log4j.rootLogger=DEBUG, Console, File ``` 这行代码设置了全局的日志级别为DEBUG,并将日志输出到Console和File两个Appender。 2. 配置Console ...
log4j.properties配置详解,长期总结,以完善
《log4j.properties全应用详解》 在Java开发中,日志记录是不可或缺的一部分,它帮助开发者追踪程序运行状态,定位错误,优化性能。本文将深入探讨log4j.properties配置文件的使用,以及如何在实际项目中充分利用其...
**日志框架Log4j详解** 在Java开发中,日志记录是一项不可或缺的功能,它能够帮助开发者追踪程序运行状态,定位错误,优化性能。Log4j是Apache组织提供的一款广泛使用的开源日志框架,适用于各种Java应用程序。本...
Log4j.properties 配置实例详解 在 Java 应用程序中, Log4j 是一个非常流行的日志记录工具,它能够帮助开发者快速地记录和跟踪应用程序中的日志信息。log4j.properties 文件是 Log4j 的核心配置文件,它控制着 Log...
在实际应用中,通过修改`log4j.properties`或`log4j.xml`文件,可以轻松调整日志配置,满足不同环境和需求。例如,开发阶段可能需要DEBUG级别的详细日志,而生产环境中可能只需要ERROR级别的日志,这时只需更改配置...
### log4j.properties配置详解与使用教程 #### 一、log4j简介 log4j是Apache的一个开源项目,用于实现日志功能。它提供了一种简单的方式来管理和配置应用程序的日志输出,支持多种输出目的地(如控制台、文件等)...
Log4j.properties 配置详解 Log4j.properties 文件是 Log4j 框架的核心配置文件,用于设置记录器的级别、存放器和布局。通过配置,可以创建出 Log4J 的运行环境。下面是 Log4j.properties 文件的详细配置解释。 ...
《深入理解Java日志框架:Log4j.properties详解》 在Java编程中,日志记录是不可或缺的一部分,它有助于调试、性能分析以及问题排查。Log4j作为Java领域广泛使用的日志框架,因其强大的功能和灵活性而备受青睐。...
**日志框架Log4j详解** 在Java编程领域,日志记录是不可或缺的一部分,它用于追踪应用程序的运行状态,帮助开发者诊断错误、调试程序以及监控系统性能。Log4j是Apache软件基金会的一个开源项目,提供了一个强大的...