繁体   English   中英

结合使用SNMP4J和Logback

[英]Using SNMP4J with logback

我们在应用程序代码中使用SLF4J和logback,而SNMP4J将log4j作为依赖项。

有人可以让我知道如何使SNMP4J与logback一起使用吗?

  • SNMP4J-2.4.3
  • 重新登录-1.2.3

您可以编写自己的LogAdapter和LogFactory实现进行回滚。 那应该很简单。 您可以以Log4JLogAdatper和Log4JLogFactory为例开始。

通常,您需要所有日志记录,无论是JUL,Log4J,SLF4J,JCL还是logback,均由slf4j / logback记录。 您可以通过将以下软件包添加到classpath来实现:

<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jul-to-slf4j</artifactId>
    <version>...</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>jcl-over-slf4j</artifactId>
    <version>...</version>
</dependency>
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>log4j-over-slf4j</artifactId>
    <version>...</version>
</dependency>

对于JUL(java.util.logging),您需要调用两个额外的方法:

org.slf4j.bridge.SLF4JBridgeHandler.removeHandlersForRootLogger();
org.slf4j.bridge.SLF4JBridgeHandler.install();

使用此配置,您可以自由使用SNMP4J中的任何日志记录框架。 Log4J的示例:

LogFactory.setLogFactory(new Log4jLogFactory());

您可能必须从可传递的SNMP4J依赖项中排除Log4J(如果现在已过时,我将删除此部分):

<dependency>
    <groupId>org.snmp4j</groupId>
    <artifactId>snmp4j</artifactId>
    <version>...</version>
    <exclusions>
        <exclusion>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
        </exclusion>
    </exclusions>
</dependency>

对于记录,slf4j / logback依赖项的确如下所示(示例):

<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-classic</artifactId>
    <version>...</version>
    <exclusions>
        <exclusion>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </exclusion>
    </exclusions>
</dependency>
<dependency>
    <groupId>ch.qos.logback</groupId>
    <artifactId>logback-access</artifactId>
    <version>...</version>
</dependency>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM