Java Logging

Java 日志

Posted by John-zero on November 30, 2017

日志接口

  • Commons-Logging (JCL 简称], Jakarta Commons Logging, Apache Commons Logging) (官网) (GitHub)

      对外提供统一的接口, 然后采用 适配器模式 将日志的具体操作委托给集成的具体的日志框架, 比如 Log4J, Log4J 2 等 
    
  • SLF4j (Simple Logging Facade For Java) 基于 API 的 Java 日志框架 (官网) (GitHub)


日志框架

  • Apache Log4J 1 (官网) (GitHub)

  • Apache Log4J 2 (官网) (GitHub)

      Log4J 1 的升级版本, 最大的优势在于多线程并发场景下性能更优, 异步模式采用 高性能队列 Disruptor 以获取更高性能
    
  • Logback (官网) (GitHub)

      Logback 是在 Log4J 的基础做的改进, 官方建议配合 SLF4j 一起使用(对 SLF4j 无缝结合)
    
  • JDK-Logging

      JDK 1.4 版本后提供的一个自带的日志库实现
    

日志服务平台


  • GrayLog2 (官网) (GitHub)

    技术栈

    • GrayLog2 (搜索和视图展示日志, 告警和权限) (GitHub)
    • Elasticsearch (提供搜索日志, 日志文件存储) (GitHub)
    • MongoDB (储存日志源文件) (GitHub)
    • Collector-sidecar 或者 syslog (收集日志)

注意

SLF4j, Log4J, Logback 都是出自于同一个作者


集成关系图

参考: https://www.slf4j.org/manual.html