zoukankan      html  css  js  c++  java
  • 使用slf4j取代Apache Commons Logging

    假如你正在开发应用程序所调用的组件当中已经使用了 JCL(之前叫 Jakarta Commons Logging,JCL) 的,还有一些组建可能直接调用了 java.util.logging,这时你需要一个桥接器(名字为 XXX-over-slf4j.jar)把他们的日志输出重定向到 SLF4J,所谓的桥接器就是一个假的日志实现工具,比如当你把 jcl-over-slf4j.jar 放到 CLASS_PATH 时,即使某个组件原本是通过 JCL 输出日志的,现在却会被 jcl-over-slf4j “骗到”SLF4J 里,然后 SLF4J 又会根据绑定器把日志交给具体的日志实现工具。过程如下

    Component
    |
    | log to Apache Commons Logging
    |
    V
    jcl-over-slf4j.jar --- (redirect) ---> SLF4j ---> slf4j-log4j12-version.jar ---> log4j.jar ---> 输出日志

    看到上面的流程图可能会发现一个有趣的问题,假如在 CLASS_PATH 里同时放置 log4j-over-slf4j.jar 和 slf4j-log4j12-version.jar 会发生什么情况呢?没错,日志会被踢来踢去,最终进入死循环。

    所以使用 SLF4J 的比较典型搭配就是把 slf4j-api、JCL 桥接器、java.util.logging(JUL)桥接器、log4j 绑定器、log4j 这5个 jar 放置在 CLASS_PATH 里。

    不过并不是所有APP容器都是使用 log4j 的,比如 Google AppEngine 它使用的是 java.util.logging(JUL),这时应用 SLF4J 的搭配就变成 slf4j-api、JCL桥接器、logj4桥接器、JUL绑定器这4个 jar 放置在 WEB-INF/lib 里。

  • 相关阅读:
    matlab 工具箱下载地址
    P3022 [USACO11OPEN]Odd degrees G
    P1052 过河 【dp】
    P1156 垃圾陷阱
    P1063 能量项链 【区间dp】
    P1026 统计单词个数 【dp】
    P1541 乌龟棋【记忆化搜索】
    P1736 创意吃鱼法 【dp】
    单调队列优化多重背包 洛谷P1776 宝物筛选
    单调队列 洛谷P1886 滑动窗口
  • 原文地址:https://www.cnblogs.com/wy2325/p/5600263.html
Copyright © 2011-2022 走看看