commmons_logging 和 log4j 之日志笔记一
- 所有项目源码:http://pan.baidu.com/s/1b365ZK
- 日志原理
- 反应程序运行状况,错误,什么时候发生,什么情况发生。
- JDK 1.4 logging
- 优点:不需要任何类库支持,只要java环境运行即可
- 商业很少用,、
- JDK logging 日志分为几个级别ALL,FINEST,FINER,FINE,CONFIG,INFO,WARNINF,SERVER,OFF等。
- 如下代码:和输出信息 可以设置多个输出(Handler),每个设置不同的Level,通过addHandler 添加到中。
-
import java.util.logging.ConsoleHandler; import java.util.logging.Handler; import java.util.logging.Level; import java.util.logging.Logger; public class JDKLogTest { public static Logger log = Logger.getLogger(JDKLogTest.class.toString()); //JDK 日志 static{ Handler console = new ConsoleHandler(); //添加一个控制台输出 console.setLevel(Level.FINE); //设置为FINE级别 log.addHandler(console); //添加到 log 中 } public static void main(String[] args) { log.setLevel(Level.FINE); //修改输出级别 log.finest("finest"); log.finer("finer"); log.fine("fine"); //控制台将只输出FINE 以上的级别 log.config("config"); log.info("info"); log.warning("warning"); log.severe("severe"); } }
console 信息如下
-
九月 20, 2016 11:36:33 下午 JDKLogTest main 详细: fine 九月 20, 2016 11:36:33 下午 JDKLogTest main 配置: config 九月 20, 2016 11:36:33 下午 JDKLogTest main 信息: info 九月 20, 2016 11:36:33 下午 JDKLogTest main 信息: info 九月 20, 2016 11:36:33 下午 JDKLogTest main 警告: warning 九月 20, 2016 11:36:33 下午 JDKLogTest main 警告: warning 九月 20, 2016 11:36:33 下午 JDKLogTest main 严重: severe 九月 20, 2016 11:36:33 下午 JDKLogTest main 严重: severe
- JDk默认有个控制台输出INFO级别以上的信息所以这里输出了2次,根据级别等级设为ALL,输出所有信息,设置OFF 所有信息不会输出。
- Log4J 控件
- 目前最广泛的日志控件,日志级别(由低到高)ALL、TRACE(跟踪)、DEBUGE(调试)、INFO(信息)、WARNING(警告)、ERROR(错误)、INTAL(致命)、OFF。
- 高级别会屏蔽低级别的信息。
- 使用jar包 log4j-1.2.15.jar 项目源码 log4j.zip
- 配置文件log4j.properties
-
log4j.rootLogger=DEBUG, A1 #DEBUG级别 输出到A1 log4j.appender.A1=org.apache.log4j.ConsoleAppender #定义A1为控制台输出 log4j.appender.A1.layout=org.apache.log4j.PatternLayout
#定义输出格式log4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH\:mm\:ss,SSS} [%C]-[%p%m]%n
%-d{yyyy-MM-dd HH\:mm\:ss,SSS} [%C]-[%p] %m%n 的具体分析
输出结果:
2016-09-21 01:26:40,033 [com.log4j.test.Log4jTest]-[DEBUG] debug信息%-d{yyyy-MM-dd HH\:mm\:ss,SSS} 时间 :2016-09-21 01:26:40,033
%C 类名 :com.log4j.test.Log4jTest
%p 输出级别 :DEBUG
%m 日志信息 :debug信息
%n 换行输出控制符
注意:其中[] - 原样输出
- common-logging控件
- apache common 类库中的一员,灵活选择JDK1.4 logging 和 log4j。自动检查是否使用 log4j.
- 源码:commonslogging.zip 所需jar :commons-logging.jar 。如果使用 log4j 加入log4j.jar.
- 可以使用配置文件显式地启用log4j.配置文件名commons-logging.propertise
-
org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger org.apache.commons.logging.LogFactory=org.apache.commons.logging.impl.LogFactoryImpl