日志框架:提供日志调用的接口,实际的日志输出委托给日志系统实现。

  • JCL(Jakarta Commons Logging):比较流行的日志框架,很多框架都依赖JCL,例如Spring等。
  • SLF4j:提供新的API,初衷是配合Logback使用,但同时兼容Log4j。

日志系统:负责输出日志

  • Log4j:较早的日志系统,可以单独使用,也可配合日志框架JCL使用
  • Logback:Log4j的替代产品,需要配合日志框架SLF4j使用
  • JUL(java.util.logging):JDK提供的日志系统,较混乱,不常用

日志系统使用方式

日志框架 日志系统 说明
-- log4j log4j可单独使用,不推荐
JCL log4j log4j配合JCL使用
SLF4j logback logback配合SLF4j使用
SLF4j (SLF4j-Log4j12) + log4j log4j配合SLF4j使用,但需要使用SLF4j-Log4j12做桥接
SLF4j + JCL-over-SLF4j logback 使原来使用JCL+log4j的系统能使用logback输出日志
SLF4j + JCL-over-SLF4j SLF4j-log4j12 + Log4j 比较混乱的用法,框架使用SLF4j,但日志使用Log4j,同时兼容原来的JCL接口。这种使用方式多是由于复杂的包依赖,而每个包中使用了不同日志框架
SLF4j + JCL-over-SLF4j + log4j-over-slf4j SLF4j-log4j12 + log4j 更奇葩的用法,在上面的基础上还要兼容某些包直接使用log4j的场景

说明

  • JCL-over-SLF4j是兼容JCL接口并使用SLF4j日志框架的一个兼容框架,依赖SLF4j,但不能与JCL共存
  • SLF4j-Log4j12是为了能使Log4j工作于SLF4j环境而存在的一个兼容框架,与logback同作为日志系统,不能共存
  • log4j-over-slf4j是为了使用SLF4j框架并兼容直接使用log4j的场景

java日志框架与日志系统的更多相关文章

  1. Java日志框架:slf4j作用及其实现原理

    简单回顾门面模式 slf4j是门面模式的典型应用,因此在讲slf4j前,我们先简单回顾一下门面模式, 门面模式,其核心为外部与一个子系统的通信必须通过一个统一的外观对象进行,使得子系统更易于使用.用一 ...

  2. JAVA日志框架概述

            日志用来记录应用的运行状态以及一些关键业务信息,其重要性不言而喻,通常我们借助于现有的日志框架完成日志输出.目前开源的日志框架很多,常见的有log4j.logback等,有时候我们还会 ...

  3. Springboot 系列(四)Spring Boot 日志框架

    注意:本 Spring Boot 系列文章基于 Spring Boot 版本 v2.1.1.RELEASE 进行学习分析,版本不同可能会有细微差别. 前言 Spring 框架选择使用了 JCL 作为默 ...

  4. 【知识点】C++的日志框架

    常用的 C++ 日志框架 一.日志框架 一个经过专门设计的实用程序,用于规范应用程序的日志记录过程,就是日志框架.   日志框架可以自己编写(需要一定的能力哦),也可以由第三方(例如:log4cplu ...

  5. tomcat日志及logback相关日志框架

    一.重点问题整理 1.1 关于logback.xml中的路径设置问题 准备金系统的logback.xml中设置的路径是: <!-- 定义日志文件 输出位置 --> <property ...

  6. 日志框架 NLog

    这里按老规矩先进行和其它产品进行比较: 目前在.net平台存在两个比较老牌的日志框架分别为Log4net和NLog. 我们进行对这两种框架进行比较下 Log4net Log4net是一个老牌的日志框架 ...

  7. 深入理解Logger日志——框架绑定原理

    深入理解Logger日志--框架绑定原理 说到Logger日志的动态绑定,主要归功与Slf4j,在之前的文章也说过,Slf4j是类似于Apache Common-Logging,英文为Simple L ...

  8. Java日志框架:SLF4J,Common-Logging,Log4J,Logback说明

    Log4j  Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台.文件.GUI组件.甚至是套接口服务 器.NT的事件记录器.UNIX Syslog守护进程等 ...

  9. Java程序员最常用的8个Java日志框架

    转自:http://www.codeceo.com/article/8-java-log-framework.html 作为一名Java程序员,我们开发了很多Java应用程序,包括桌面应用.WEB应用 ...

随机推荐

  1. 微信朋友圈分享页面(JS-SDK 1.0)

    微信更新sdk后大量分享朋友圈代码失效,标题 缩略图 描述无法自定义 新版SDK分享文章步骤 1.绑定域名 (方法参考 http://mp.weixin.qq.com/wiki/7/aaa137b55 ...

  2. 判断脚本,图片,CSS,iframe等是否加载完成

    1.图片 <img id="MyImg" src="src"/>jquery实现:$("#MyImg").load(functi ...

  3. 你真的会用UITableView嘛

    UITableView是工程开发中最经常使用到的UI控件,但是你真的了解它嘛,这里记录几点有用的但你可能并不知道的. 当我们的数据未能显示满一屏幕的时候,UITableView会显示多余的横线,这个时 ...

  4. ASP.NET 之 检测到在集成的托管管道模式下不适用的ASP.NET设置

    将ASP.NET程序从IIS6移植到IIS7后,调试运行可能提示以下错误: HTTP 错误 500.23 - Internal Server Error 检测到在集成的托管管道模式下不适用的 ASP. ...

  5. 美H1B签证额满,硕士以上学位仍可申请

    美国公民与移民服务局6月1日宣布,2007会计年度的工作签证H1B名额已经用完,下年度的申请从明年4月1日开始.但在美国获得硕士以上学位的高学历者仍可申请. 据北美世界日报报道,美国移民律师协会对连续 ...

  6. Header 与 Footer 的 DIV 高度固定, 中间内容 DIV高度自适应,内容不满一页时,默认填满屏幕。

    一.需求: 页面布局分三大块: Header Body Footer 1.内容不满一页时,Footer 在屏幕最底部,Body 填充满 Header 与 Footer 中间的部分. 2.当缩小浏览器时 ...

  7. request 和response 中的setCharacterEncoding区别

    response和request的setCharacterEncoding 一.request.setCharacterEncoding():是设置从request中取得的值或从数据库中取出的值. 指 ...

  8. Yii2高级版本复制新项目出现问题解决(转)

    引用于 http://www.linuxidc.com/Linux/2015-02/114116.htm Yii2高级版本复制新项目会遇到下面的报错信息: exception 'yii\base\In ...

  9. oracle定期运行job

    数据库:oracle 11g,操作都在pl/sql客户端完成 第一步.创建一个”E_P_FFM_STATE(fltdt in varchar2)“存储过程 第二步.打开Command Window,创 ...

  10. [转]在 Windows Server 2012 上安装 IIS 8

    本文转自:http://www.starland.net.cn/blog/view/158/1.aspx 本文译自:http://learn.iis.net/page.aspx/1088/instal ...