美文网首页
java日志体系

java日志体系

作者: 云海_54d4 | 来源:发表于2020-05-06 11:53 被阅读0次
    1. JDK Logging
      由jdk提供的日志打印类:java.util.logging.Logger
      配置需要启动时指定,所以用的很少:-Djava.util.logging.config.file=<config-file-name>

    2. Commons Logging
      由apache提供的第三方日志库接口,他可以挂接不同的日志系统,并通过配置文件指定挂接哪个日志系统。
      默认情况下,Commons Logging会自动搜索并使用Log4j,如果没有则使用JDK Logging。

    3. Log4j
      Log4j是一种具体实现。
      Appender -> Filter -> Layout -> socket。
      log4j2.xml 放在classpath即可让Log4j读取配置。
      在使用时,不直接应用Log4j的类,而是通过Commons Logging作为接口(外观/门面模式)

    4. SLF4J 和 Logback
      slf4j相当于 commons Logging作为日志接口,Logback类似log4j是一种日志实现。
      slf4j可以使用{}占位符打印日志,且性能做了优化。
      logback.xml 方在classpath中即可让logback读取配置。

    5. log4j-over-slf4j
      使用 log4j-over-slf4j 替代log4j,这样log4j接口数据的日志就会通过log4j-over-slf4j路由到slf4j上,这样即使引入的三方库使用log4j打印日志,也会被统一到系统的slf4j日志中。
      log4j-over-slf4j包按log4j包实现了其中的各个类,这样替换后可以保证编译不出错。但内部代码则是代理到了slf4j接口。

    6. slf4j-log4j12
      slf4j是门面,log4j是具体实现,但log4j并不是slf4j的原生实现,所以需要一层进行桥接。(logback是slf4j的原生实现,所以不需要这种包)。
      如果系统中同时出现slf4j-log4j12和log4j-over-slf4j就会形成循环调用导致stackoverflow。
      相同的还有(jcl-over-slf4j和slf4j-jcl)

    相关文章

      网友评论

          本文标题:java日志体系

          本文链接:https://www.haomeiwen.com/subject/vrbightx.html