log4j详解与实战
log4j是一个非常强大的log记录软件,下面我们就来看看在项目中如何使log4j。
首先当然是得到log4j的jar档,推荐使用1.2.X版,下载地址:
http://logging.apache.org/log4j/1.2/download.html
我们先看一个最简单的示例:
【示例1】
项目结构:
【注:由于这里的多个项目公用一个jar档,我们可以创建一个专门放置jar档的Java工程,然后将jar档放到lib目录下。在要使用的工程中按图所示进行引用 】
Java代码:
package com.coderdream.log4j; import org.apache.log4j.Logger; public class HelloLog4j { private static Logger logger = Logger.getLogger(HelloLog4j.class); /** * @param args */ public static void main(String[] args) { // System.out.println("This is println message."); // 记录debug级别的信息 logger.debug("This is debug message."); // 记录info级别的信息 logger.info("This is info message."); // 记录error级别的信息 logger.error("This is error message."); } }
package com.coderdream.log4j; import org.apache.log4j.Logger; public class HelloLog4j { private static Logger logger = Logger.getLogger(HelloLog4j.class); /** * @param args */ public static void main(String[] args) { // System.out.println("This is println message."); // 记录debug级别的信息 logger.debug("This is debug message."); // 记录info级别的信息 logger.info("This is info message."); // 记录error级别的信息 logger.error("This is error message."); } }
配置文件log4j.properties:
#设置级别和目的地 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
输出结果:
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."); } }
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等等,则我们可以将各层的日志信息分类输出到各个文件。
// 记录debug级别的信息 if (logger.isDebugEnabled()) { logger.debug("This is debug message from Dao."); } // 记录info级别的信息 if (logger.isInfoEnabled()) { logger.info("This is info message from Dao."); } // 记录error级别的信息 logger.error("This is error message from Dao.");
// 记录debug级别的信息 if (logger.isDebugEnabled()) { logger.debug("This is debug message from Dao."); } // 记录info级别的信息 if (logger.isInfoEnabled()) { logger.info("This is info message from Dao."); } // 记录error级别的信息 logger.error("This is error message from Dao.");
参考资料:
1、log4j 详解( 一)
5、Apache Log4j详解
6、log4j.xml配置详解①
7、log4j.xml配置详解②
- 大小: 43.8 KB
- 大小: 25.9 KB
- log4jDemo.rar (374 KB)
- 描述: 可直接导入eclipse中运行的8个项目的源代码