zoukankan      html  css  js  c++  java
  • JavaSE--日志

    参考

    https://www.cnblogs.com/hanszhao/p/9754419.html

    https://www.cnblogs.com/chenhongliang/p/5312517.html

    Java常用日志框架

    现今,Java日志领域被划分为两大阵营:

    • Commons Logging阵营
    • Slf4j阵营

    Commons Logging在Apache大树的笼罩下,有很大的用户基数。

    但有证据表明,形式正在发生变化。

    2013年底有人分析了GitHub上30000个项目,统计出了最流行的100个Libraries,可以看出Slf4j的发展趋势更好.

    java_populor_jar

    Log4j

    1996年早期,欧洲安全电子市场项目组决定编写它自己的程序跟踪API(Tracing API)。经过不断的完善,这个API终于成为一个十分受欢迎的日志软件包,即Log4j。后来Log4j成为Apache基金会项目中的一员。

    Apache Log4j是一个基于Java的日志记录工具。它是由Ceki Gülcü首创的.

    当时Log4j近乎成了Java社区的日志标准。据说Apache基金会还曾经建议Sun引入Log4j到java的标准库中,但Sun拒绝了。

    Jul

    2002年Java1.4发布,Sun推出了自己的日志库JUL(Java Util Logging),其实现基本模仿了Log4j的实现

    在JUL出来以前,Log4j就已经成为一项成熟的技术,使得Log4j在选择上占据了一定的优势。

    Jakarta Commons Logging

    Apache推出的Jakarta Commons Logging(JCL)只是定义了一套日志接口(其内部也提供一个Simple Log的简单实现),支持运行时动态加载日志组件的实现.

    也就是说,在你应用代码里,只需调用Jakarta Commons Logging的接口,底层实现可以是Log4j,也可以是Java Util Logging。

    Commons Logging

    Apache基金会所属的项目,是一套Java日志接口,之前叫Jakarta Commons Logging,后更名为Commons Logging。

    Log4j 2

    Apache Log4j 2是apache开发的一款Log4j的升级产品

    Apache眼看有被Logback反超的势头,于2012-07重写了Log4j 1.x,成立了新的项目Log4j 2, Log4j 2具有Logback的所有特性。

    Slf4j

    2006年,Ceki Gülcü不适应Apache的工作方式,离开了Apache。

    然后先后创建了

    • slf4j(Simple Logging Facade for Java)
      日志门面接口,类似于Commons Logging,本身并无日志的实现.
    • Logback
      slf4j的实现

    Logback

    一套日志组件的实现(Slf4j阵营)。

    SLF4J接入

    slf4j与其他日志组件的桥接说明

    • slf4j-log4j12
      log4j桥接器.由于log4j没有实现slf4j接口,所以slf4j想要使用log4j需要引入slf4j-log4j12
    • slf4j-jdk14
      java.util.logging的桥接器.如果要使用JDK原生的日志框架,需要引用slf4j-jdk14,因为jdk logging同样没有实现slf4j接口.
    • slf4j-nop
      NOP桥接器.默默丢弃一切日志.
    • slf4j-simple
      一个简单实现的桥接器.该实现输出所有事件到System.err.只有Info以及高于该级别的消息被打印,在小型应用中它也许是有用的.
    • slf4j-jcl
      Jakarta Commons Logging的桥接器.这个桥接器将Slf4j所有日志委派给JCL.
    • logback-classic
      slf4j的原生实现,Logback直接实现了slf4j接口,因此使用slf4j与Logback的结合使用也意味着更小的内存与计算开销.
  • 相关阅读:
    requests 关于multipart/form-data类型上传文件
    APPIUM 小程序webview问题
    python多重继承,优先级
    关于apppium启动微信,每次都要重新登录的解决方法
    map函数
    unittest: if __name__ == "__main__" 理解
    接口自动化____如何根据测试数据excel中的数据量多少 去test类中定义同数据量的测试函数
    写一个简单的 django_post demo
    django day1 建立一个简答的django demo
    201903-1 分蛋糕
  • 原文地址:https://www.cnblogs.com/microcat/p/10696007.html
Copyright © 2011-2022 走看看