1、log4j和logback的介绍数据库
log4j:安全
能够控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;
能够控制每一条日志的输出格式;
经过定义每一条日志信息的级别,可以更加细致地控制日志的生成过程。
上述能够经过一个配置文件来灵活地进行配置,而不须要修改应用的代码。服务器
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来访问日志的功能。性能
Logback与SLF4J结合起来用,两个组件的官方网站以下:测试
logback的官方网站: http://logback.qos.ch网站
SLF4J的官方网站:http://www.slf4j.orgspa
2、logback取代 log4j的理由:线程
Logback和log4j是很是类似的,下面列了logback相对于log4j的一些优势:设计
一、更快的实现 Logback的内核重写了,在一些关键执行路径上性能提高10倍以上。并且logback不只性能提高了,初始化内存加载也更小了。
二、很是充分的测试 Logback通过了几年,数不清小时的测试。Logback的测试彻底不一样级别的。这是简单重要的缘由选择logback而不是log4j。
三、Logback-classic很是天然实现了SLF4j Logback-classic实现了 SLF4j。在使用SLF4j中,你都感受不到logback-classic。并且由于logback-classic很是天然地实现了SLF4J, 所 以切换到log4j或者其余,很是容易,只须要提供成另外一个jar包就OK,根本不须要去动那些经过SLF4JAPI实现的代码。
四、很是充分的文档 官方网站有两百多页的文档。
五、自动从新加载配置文件 当配置文件修改了,Logback-classic能自动从新加载配置文件。扫描过程快且安全,它并不须要另外建立一个扫描线程。这个技术充分保证了应用程序能跑得很欢在JEE环境里面。
六、Lilith Lilith是log事件的观察者,和log4j的chainsaw相似。而lilith还能处理大数量的log数据 。
七、谨慎的模式和很是友好的恢复 在谨慎模式下,多个FileAppender实例跑在多个JVM下,能 够安全地写道同一个日志文件。RollingFileAppender会有些限制。Logback的FileAppender和它的子类包括 RollingFileAppender可以很是友好地从I/O异常中恢复。
八、配置文件能够处理不一样的状况 开发人员常常须要判断不一样的Logback配置文件在不一样的环境下(开发,测试,生产)。而这些配置文件仅仅只有一些很小的不一样,能够经过,和来实现,这样一个配置文件就能够适应多个环境。
九、Filters(过滤器) 有些时候,须要诊断一个问题,须要打出日志。在log4j,只有下降日志级别,不过这样会打出大量的日志,会影响应用性能。在Logback,你能够继续 保持那个日志级别而除掉某种特殊状况,如alice这个用户登陆,她的日志将打在DEBUG级别而其余用户能够继续打在WARN级别。要实现这个功能只需 加4行XML配置。能够参考MDCFIlter 。
十、SiftingAppender(一个很是多功能的Appender) 它能够用来分割日志文件根据任何一个给定的运行参数。如,SiftingAppender可以区别日志事件跟进用户的Session,而后每一个用户会有一个日志文件。
十一、自动压缩已经打出来的log RollingFileAppender在产生新文件的时候,会自动压缩已经打出来的日志文件。压缩是个异步过程,因此甚至对于大的日志文件,在压缩过程当中应用不会受任何影响。
十二、堆栈树带有包版本 Logback在打出堆栈树日志时,会带上包的数据。
1三、自动去除旧的日志文件 经过设置TimeBasedRollingPolicy或者SizeAndTimeBasedFNATP的maxHistory属性,你能够控制已经产生日志文件的最大数量。若是设置maxHistory 12,那那些log文件超过12个月的都会被自动移除。
总之,logback比log4j太优秀了。