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."); 参考资料: 1、log4j 详 解( 一) 2、log4j 详解(二) 3、Log4j基本使用方法 4、Log4j 用法(一) 5、log4j.properties 使用说明 6、Apache Log4j详解 7、log4j.xml配置详解 8、log4j.xml配置详解
相关推荐
chw0 2020-11-04
大唐帝国前营 2020-08-18
sdaq 2020-07-26
MrLiar 2020-07-07
sdaq 2020-06-16
CXC0 2020-06-14
丨Fanny丨Cri 2020-06-13
CXC0 2020-06-08
dongxurr 2020-06-07
sdaq 2020-06-06
MrLiar 2020-06-04
丨Fanny丨Cri 2020-06-03
MrLiar 2020-05-25
丨Fanny丨Cri 2020-05-17
MrLiar 2020-05-14
MrLiar 2020-05-12
sdaq 2020-05-11