【问题标题】:How to forward snmp4j/snmp4j-agent jar logs/sysout statement to log4j2 used API?如何将 snmp4j/snmp4j-agent jar 日志/sysout 语句转发到 log4j2 使用的 API?
【发布时间】:2020-08-03 06:16:49
【问题描述】:

我需要将 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 框架?

【问题讨论】:

    标签: java log4j2 snmp4j


    【解决方案1】:

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

    log4j2的详细使用方法请参考log4j2 homepage

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

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

    【讨论】:

    • 感谢您的回复,我已将 Logger 上方添加到 log4j2.xml 中,如下所示。下面的 appenderRef “alarm” 被使用并指出了现有的应用程序日志。 我仍然看不到任何 snmp 事件的日志引用使用了 snmpget/snmpbulkwalk。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-28
    • 1970-01-01
    相关资源
    最近更新 更多