首页 > 解决方案 > 如何将 snmp4j/snmp4j-agent jar 日志/sysout 语句转发到 log4j2 使用的 API?

问题描述

我需要将 snmp 身份验证成功和失败详细信息记录到使用的 log4j2 框架中。我的代码只会在身份验证/snmpget/bulk 命令成功时命中,而失败的 snmp 命令(如参数传递无效用户名/OID 不存在)不会命中我的代码,响应将通过使用的 snmp4j/snmp4j-agent jar 发送到客户端。在失败的情况下,我会错过将语句记录到使用的 log4j2 框架中。

我遵循了互联网上提供的以下几种方法,但这些方法没有帮助

1.https://www.snmp4j.org/CHANGES-2.x.txt:使用最新的snmp4j-log4j2.8.2版本和snmp4j2.8.4和snmp4j-agent2.7.4 jar

  1. https://bugzilla.redhat.com/show_bug.cgi?id=591762:要将 SNMP4J 日志发送到 log4j,您可以将“-Dsnmp4j.LogFactory=org.snmp4j.log.Log4jLogFactory”添加到 RHQ java opts,或者在代码中调用 LogFactory.setLogFactory(new org.snmp4j.log.Log4jLogFactory())。

谁能帮助我如何将 snmp4j 日志重定向到使用过的 log4j2 框架?

标签: javalog4j2snmp4j

解决方案


你的两种方法是正确的。之后,您需要配置 log4j2 框架。

有关如何使用 log4j2 的详细信息,请参阅log4j2 主页。

拥有一个正在运行的 log4j2 配置,您可能想要更改一些 snmp4j 日志级别。使用基于 XML 的 log4j2 配置,您必须添加以下行以输出所有带有日志级别调试的 snmp4j 消息:

<Logger name="org.snmp4j" level="debug" />


推荐阅读