日志工具jdklogging,log4j和commons-logging
来源:互联网 发布:天佑为什么这么火 知乎 编辑:程序博客网 时间:2024/05/18 00:27
1。 jdk从1.4开始自带了日志功能,其优点是不需要类库的支持偏可以使用。然后其易用性,功能性却很差,因此很少使用。
jdk logging把日志分为几个级别:all,finest,finer,fine,config,info,warning,servere,off等,级别依次升高。如果把级别设为info,
则以前的不会输出。
例如(jdk1.6为例):
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()); static{ Handler console=null; console = new ConsoleHandler(); /* try { console = new FileHandler("filelog.log"); } catch (SecurityException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }*/ console.setLevel(Level.FINE); log.addHandler(console); } public static void main(String[] args) { log.setLevel(Level.FINE); log.finest("finest"); log.finer("finer"); log.fine("fine"); log.config("config"); log.info("info"); log.warning("warning"); log.severe("servere"); }}
输出的日志效果如下(info以上默认会输出一次,因此看到2次):
2012-9-13 22:05:06 com.logging.jdk.JDKLogTest main
良好: fine
2012-9-13 22:05:06 com.logging.jdk.JDKLogTest main
配置: config
2012-9-13 22:05:06 com.logging.jdk.JDKLogTest main
信息: info
2012-9-13 22:05:06 com.logging.jdk.JDKLogTest main
信息: info
2012-9-13 22:05:06 com.logging.jdk.JDKLogTest main
警告: warning
2012-9-13 22:05:06 com.logging.jdk.JDKLogTest main
警告: warning
2012-9-13 22:05:06 com.logging.jdk.JDKLogTest main
严重: servere
2012-9-13 22:05:06 com.logging.jdk.JDKLogTest main
严重: servere如果需要输出到日志文件,需要用FileHandler,然后日志格式却为xml格式,可读性较差。
2。 Log4j是目前应用最广泛的日志控件,他把日志分为All,TRACE,DEBUG,INFO,WARNING,ERROR,FITAL,OFF几个比界,级别依次升高,
级别高的LEvel屏蔽级别低的信息。
开发步骤如下:
a)添加类库log4j-1.2.13.jar.
b)编写log4j.properties配置文件。
例如:
log4j.rootLogger=INFO,A1,defaultLogger
#输出到控制台:
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%-d{MM-dd HH:mm:ss}: %c[%t]-%-5p:%m%n
#每天生成一个文件
log4j.appender.defaultLogger=org.apache.log4j.DailyRollingFileAppender
log4j.appender.defaultLogger.File=H:\\workspace\\loggtest\\logs\\default.log
log4j.appender.defaultLogger.Encoding=UTF-8log4j.appender.defaultLogger.Threshold=error #文件只保存error以上的日志
log4j.appender.defaultLogger.DatePattern='.'yyyyMMdd
log4j.appender.defaultLogger.layout=org.apache.log4j.PatternLayout
log4j.appender.defaultLogger.layout.ConversionPattern=%d{MM-dd HH:mm:ss}: %c[%t]-%-5p:%m%nc)编写代码如下:
package com.logging.log4j;
import org.apache.log4j.Logger;
public class Log4jTest {private static Logger log = Logger.getLogger(Log4jTest.class);
public static void main(String[] args) {
// TODO Auto-generated method stub
log.trace("trace");
log.debug("debug");
log.info("info");
log.warn("warn");
log.error("error");
log.fatal("fatal");
try{
String s = null;
s.length();
}catch(Exception e){
log.trace("trace一个异常",e);
log.debug("debug一个异常",e);
log.info("info一个异常",e);
log.warn("warn一个异常",e);
log.error("error一个异常",e);
log.fatal("fatal一个异常",e);
}
}
}控制台日志输出结果为:
09-13 22:29:07: com.logging.log4j.Log4jTest[main]-INFO :info
09-13 22:29:07: com.logging.log4j.Log4jTest[main]-WARN :warn
09-13 22:29:07: com.logging.log4j.Log4jTest[main]-ERROR:error
09-13 22:29:07: com.logging.log4j.Log4jTest[main]-FATAL:fatal
09-13 22:29:07: com.logging.log4j.Log4jTest[main]-INFO :info一个异常
java.lang.NullPointerException
at com.logging.log4j.Log4jTest.main(Log4jTest.java:19)
09-13 22:29:07: com.logging.log4j.Log4jTest[main]-WARN :warn一个异常
java.lang.NullPointerException
at com.logging.log4j.Log4jTest.main(Log4jTest.java:19)
09-13 22:29:07: com.logging.log4j.Log4jTest[main]-ERROR:error一个异常
java.lang.NullPointerException
at com.logging.log4j.Log4jTest.main(Log4jTest.java:19)
09-13 22:29:07: com.logging.log4j.Log4jTest[main]-FATAL:fatal一个异常
java.lang.NullPointerException
at com.logging.log4j.Log4jTest.main(Log4jTest.java:19)
文件日志为:09-13 22:32:57: com.logging.log4j.Log4jTest[main]-ERROR:error
09-13 22:32:57: com.logging.log4j.Log4jTest[main]-FATAL:fatal
09-13 22:32:57: com.logging.log4j.Log4jTest[main]-ERROR:error涓�涓紓甯�
java.lang.NullPointerException
at com.logging.log4j.Log4jTest.main(Log4jTest.java:19)
09-13 22:32:57: com.logging.log4j.Log4jTest[main]-FATAL:fatal涓�涓紓甯�
java.lang.NullPointerException
at com.logging.log4j.Log4jTest.main(Log4jTest.java:19)
注意:log4j.appender.defaultLogger.Threshold=error,可以单独为每个Appender设置日志级别。
- 日志工具jdklogging,log4j和commons-logging
- 3.日志工具jdklogging,log4j和commons-logging总结
- Apache通用日志工具commons-logging和Log4j使用总结
- Apache通用日志工具commons-logging和Log4j使用
- Apache通用日志工具commons-logging和Log4j使用总结
- Apache通用日志工具commons-logging和Log4j使用总结
- Apache通用日志工具commons-logging和Log4j使用总结
- Apache通用日志工具commons-logging和Log4j使用总结
- Apache通用日志工具commons-logging和Log4j使用总结
- Apache通用日志工具commons-logging和Log4j使用总结
- Apache通用日志工具commons-logging和Log4j使用总结
- commons-logging和Log4j 日志管理
- commons-logging和Log4j 日志管理
- commons-logging和Log4j 日志管理
- 使用commons-logging和log4j记录日志
- commons-logging和Log4j 日志管理
- commons-logging和Log4j日志管理
- commons-logging和Log4j 日志管理
- 王爽第十一章测试题答案
- google面试题
- osg for android 学习之十四:再说纹理
- 操作系统学习03_day
- Linux字符驱动中动态分配设备号与动态生成设备节点
- 日志工具jdklogging,log4j和commons-logging
- centos5.4环境下openvpn+mysql+freeradius+daloradius+bigfish 的配置
- vector和map 容器的区别
- 选秀节目打分
- Android的位置服务
- 信息发布类网站后台界面设计一点思考(如何去到编辑页)
- LINQ TO XML
- 凸函数的性质
- [c#]读写ini文件