一、Java日志框架选型
标准
1本组件强壮性
官方宣称的,各大牛点评的,扩展性
2使用广泛性
各系统集成,使用时间
3业务系统
新的好办,旧的要兼容
4可选性
只有一类实现,要么自己造,要么只能用
二、对比
Log4j LOGBack java.util.Logging SLF4J Apache Common-Logging
Log4j Apache的一个开放源代码项目,使用最广泛
LOGBack Logback是由log4j创始人设计的又一个开源日记组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日记系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容器集成提供通过Http来访问日记的功能。
java.util.Logging
Java Logging API是sun公司于2002年5月正式发布的。它是自J2SE 1.4版本开始提供的一个新的应用程序接口
SLF4J 简单统一的接口 simple log facade for java
简单日记门面(Facade)SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。 Logging API实现既可以选择直接实现SLF4J接的loging APIs如: NLOG4J、SimpleLogger。也可以通过SLF4J提供的API实现来开发相应的适配器如Log4jLoggerAdapter、JDK14LoggerAdapter。
Apache Common-Logging
通过动态查找的机制,在程序运行时自动找出真正使用的日志库
http://blog.sina.com.cn/s/blog_457567880100kffd.html Java日志框架
http://hill007299.iteye.com/blog/1561295 java日志系统
三、使用前测试
四、定结果
在新的项目中,使用SLF4J+Logback是比较好的日志框架选型
旧项目,能转的转,不能转的,只能不转
五、重点学习
http://www.iteye.com/topic/378077 LOG4j
SLF4J+Logback
六、项目中日志输出要求
错误输出要求
1.内容什么业务,什么方法输出,业务唯一数据是什么,区别于其数据,其他业务
2.级别:DEBUG,INFO,ERROR
DEBUG是开发测试,或公网测试,IF ISDEBUG一下,再输入DEBUG;
INFO是生产输出标准
ERROR是错误输出
INFO要求有逻辑的输出,能引导判断程序执行情况,结合业务可读
ERROR能结合业务输出,利于判断问题原因,NULL,超界等
1错误输出不要用e.printStackTrace();输出 , 尽量用 logger.error("派奖时拷贝数据异常,数据ID="+id + e.getMessage(), e);
最好能指明数据唯一标识,判断程序出错原因
2INFO输出,让看日志者能找到程序执行到那,判断出数据逻辑错误过程
3前后说的业务关键字要一样,利于观察者查找 问题
标准
1本组件强壮性
官方宣称的,各大牛点评的,扩展性
2使用广泛性
各系统集成,使用时间
3业务系统
新的好办,旧的要兼容
4可选性
只有一类实现,要么自己造,要么只能用
二、对比
Log4j LOGBack java.util.Logging SLF4J Apache Common-Logging
Log4j Apache的一个开放源代码项目,使用最广泛
LOGBack Logback是由log4j创始人设计的又一个开源日记组件。logback当前分成三个模块:logback-core,logback- classic和logback-access。logback-core是其它两个模块的基础模块。logback-classic是log4j的一个改良版本。此外logback-classic完整实现SLF4J API使你可以很方便地更换成其它日记系统如log4j或JDK14 Logging。logback-access访问模块与Servlet容器集成提供通过Http来访问日记的功能。
java.util.Logging
Java Logging API是sun公司于2002年5月正式发布的。它是自J2SE 1.4版本开始提供的一个新的应用程序接口
SLF4J 简单统一的接口 simple log facade for java
简单日记门面(Facade)SLF4J是为各种loging APIs提供一个简单统一的接口,从而使得最终用户能够在部署的时候配置自己希望的loging APIs实现。 Logging API实现既可以选择直接实现SLF4J接的loging APIs如: NLOG4J、SimpleLogger。也可以通过SLF4J提供的API实现来开发相应的适配器如Log4jLoggerAdapter、JDK14LoggerAdapter。
Apache Common-Logging
通过动态查找的机制,在程序运行时自动找出真正使用的日志库
http://blog.sina.com.cn/s/blog_457567880100kffd.html Java日志框架
http://hill007299.iteye.com/blog/1561295 java日志系统
三、使用前测试
四、定结果
在新的项目中,使用SLF4J+Logback是比较好的日志框架选型
旧项目,能转的转,不能转的,只能不转
五、重点学习
http://www.iteye.com/topic/378077 LOG4j
SLF4J+Logback
六、项目中日志输出要求
错误输出要求
1.内容什么业务,什么方法输出,业务唯一数据是什么,区别于其数据,其他业务
2.级别:DEBUG,INFO,ERROR
DEBUG是开发测试,或公网测试,IF ISDEBUG一下,再输入DEBUG;
INFO是生产输出标准
ERROR是错误输出
INFO要求有逻辑的输出,能引导判断程序执行情况,结合业务可读
ERROR能结合业务输出,利于判断问题原因,NULL,超界等
1错误输出不要用e.printStackTrace();输出 , 尽量用 logger.error("派奖时拷贝数据异常,数据ID="+id + e.getMessage(), e);
最好能指明数据唯一标识,判断程序出错原因
2INFO输出,让看日志者能找到程序执行到那,判断出数据逻辑错误过程
3前后说的业务关键字要一样,利于观察者查找 问题