为什么logback比log4j好?

来源:互联网 发布:3322免费域名官网 编辑:程序博客网 时间:2024/05/17 07:34

原文链接:点击打开链接

对本人而言,其中6、10、11和13很实用,尤其是10和13,对于排查错误非常有用。

  1. 快得多的运行速度

  2. 更广泛的测试

  3. 天然地支持SLF4J

  4. 更好的文档支持

  5. 可以通过XML或Groovy配置

  6. 自动重加载配置文件

    配置文件更改后自动加载。扫描进程快速而安全。

  7. Lilith可以处理数量巨大的日志数据

  8. Prudent模式和优雅的恢复

  9. 配置文件内条件分支处理

  10. 过滤器

    可配置用户登录生产环境查看DEBUG级别日志。其他用户依然为更高级别(如WARN)

  11. SiftingAppender

    可以以任何运行时属性划分日志。比如用user session来划分,这样一个用户一个单独的日志文件

  12. 归档日志文件自动压缩

  13. 堆栈错误跟踪中包含包信息
    14:28:48.835 [btpool0-7] INFO  c.q.l.demo.prime.PrimeAction - 99 is not a valid valuejava.lang.Exception: 99 is invalid  at ch.qos.logback.demo.prime.PrimeAction.execute(PrimeAction.java:28) [classes/:na]  at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431) [struts-1.2.9.jar:1.2.9]  at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236) [struts-1.2.9.jar:1.2.9]  at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432) [struts-1.2.9.jar:1.2.9]  at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) [servlet-api-2.5-6.1.12.jar:6.1.12]  at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:502) [jetty-6.1.12.jar:6.1.12]  at ch.qos.logback.demo.UserServletFilter.doFilter(UserServletFilter.java:44) [classes/:na]  at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1115) [jetty-6.1.12.jar:6.1.12]  at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:361) [jetty-6.1.12.jar:6.1.12]  at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:417) [jetty-6.1.12.jar:6.1.12]  at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:230) [jetty-6.1.12.jar:6.1.12]

    通过以上日志很容易得知应用程序调用了部署在jetty 6.1.12下的struts 1.2.9

  14. 自动删除旧日志归档

  15. 集成的日志文件HTTP访问功能