资源描述
单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,Banclogix System Co.,Ltd,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,日志组件选择与性能优化,2013,年7月,日志组件选择与性能优化2013年7月,1,2,日志框架的关注点:,1.易用性,2.性能好,3.存储方便,4.灵活的日志格式化,5.是否支持日志等级,6.是否能应用在多线程环境,7.,成熟度,Log4J 具备以上条件。,2日志框架的关注点:,2,3,1.,易用性,依赖简单,只需要log4j-1.2.16.jar一个依赖文件,使用简单,使用前要先定义,定义完后便可直接使用,31.易用性,3,4,2.,性能好,Log4J在性能上做了最大的优化,记录一条简单格式日志只需要17 微秒(System.out也要16微秒),测试代码如下:,42.性能好,4,5,3.,存储方便,可以在配置文件配置存储端,支持多种存储端,如console,files,database,GUI components,remote socket servers,JMS,NT Event Loggers,and remote UNIX Syslog daemons,并且一次可以输出到多个不同的存储端。,53.存储方便,5,6,3.,存储方便(续),也可把两个配置合并,同时输出到控制台和文件,如果需要配置其它端,可参考,63.存储方便(续),6,7,4.,灵活的日志格式化,可以在配置文件配置日志的格式与输出信息,简单配置:,log4j.appender.stdout.layout.ConversionPattern=%p-%m%n,日志输出信息:,INFO-What a beatiful day.,复杂配置:,log4j.appender.stdout.layout.ConversionPattern=%-dyyyy-MM-dd HH:mm:ss%t:%r -%p%c1%m%n,日志输出信息:,2013-07-23 11:23:12 main:0 -INFO Hello What a beatiful day.,74.灵活的日志格式化,7,8,5.,成熟度,从1999年10月开始至今已经有14年的时间,并且已经在许多项目中有着成熟的应用,如Spring,hibernate等,85.成熟度,8,9,6.,在多线程环境中应用是否安全,Log4J是线程安全的,可以用在多线程环境中。,性能测试:,测试100个线程每秒产生100条日志,同时向一个logger写入一个文件,平均157微秒每条。,测试源码:MutilThreadUseTime.java,96.在多线程环境中应用是否安全,9,10,7.,支持不同的日志等级,Log4J有6种不同的日志等级,TRACE,DEBUG,INFO,WARN,ERROR,FATAL,FATAL为严重错误,如系统异常退出,ERROR 为程序错误,如没处理或考虑到的异常,WARN 为一般警告,如某配置文件没读取到,但不影响系统,INFO 为一般信息,如业务日志,经常被问到的一些问题,DEBUG 为程序的调试信息,TRACE 为程序的跟踪信息,如程序执行到哪一步了,根据日志的目的去使用不同等级,107.支持不同的日志等级,10,11,使用上要注意的一些问题,如何区别业务日志与系统日志?,业务日志与系统日志,系统日志使用默认输出,业务日志在日志前增加前缀business,日志存储和性能问题,Log4J 的JDBC没有使用线程池,因此在大并发的环境下会有问题,如果需要把日志记录到数据库,尽量使用消息队列进行转换,11使用上要注意的一些问题,11,12,使用上要注意的一些问题,通过设置输出不同的日志等级提高性能,对于长连接字符串要增加开关,避免不必要的性能开销(因为字符串组装影响性能),12使用上要注意的一些问题,12,13,加强的日志框架log4j 2,log4J vs log4J 2,1.API隔离,Log4j 2.0学习了SLF4J和LogBack的优点,把API及其实现类进行了分离。,2.性能改进,官方称在很多情况下,性能比Logback更强(Logback是Log4J原作者重新实现的一个高性能日志框架)。,3.支持多种API,Apache Log4j 2.0提供了对SLF4J和Apache Commons Logging API的支持。,4.自动重载配置,这一点与Logback相同,Log4j 2.0在日志配置文件修改了后,可以自动进行重载,让配置生效。,等等,log4j 2是否兼容Log4J,2目前并不兼容1,新项目建议使用log4J 2来提高性能,13加强的日志框架log4j 2,13,14,QA,?,14QA?,14,
展开阅读全文