如何将 org.eclipse.paho.client.mqttv3.logging.Logger 转发到我的日志

问题描述

我在我的 tomcat9 服务中使用 AWS IoT 库

<dependency>
    <groupId>com.amazonaws</groupId>
    <artifactId>aws-iot-device-sdk-java</artifactId>
    <version>1.3.7</version>
</dependency>

我想知道是否可以将 org.eclipse.paho.client.mqttv3.logging.Logger 的所有日志打印到我的日志文件/控制台中?像这样的所有跟踪日志:

//@TRACE 603=clearState
log.fine(CLASS_NAME,methodName,">");

我该怎么做?

更新 - 我的代码:

Service.java

static {
  MyManager manager = new MyManager();
}

MyManager.java

public MyManager() {
  iotClient = new AWSIotMqttClient(Configuration.IOT_CLIENT_ENDPOINT,deviceId,keyStore,keystorePass);
    
  iotClient.setKeepAliveInterval(30000); //30 seconds       
  iotClient.connect();
}

log4j2.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE xml>
<Configuration status="warn">
    <Properties>
        <Property name="basePath">${sys:catalina.base}/logs</Property>
    </Properties>
 
    <Appenders>
        <RollingFile name="fileLogger" fileName="${basePath}/app-info.log" filePattern="${basePath}/app-info-%d{yyyy-MM-dd}.log">
            <PatternLayout>
                <pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n</pattern>
            </PatternLayout>
            <Policies>
                <TimeBasedTriggeringPolicy interval="1" modulate="true" />
            </Policies>
            <DefaultRolloverStrategy max="10"/>
        </RollingFile>
 
        <Console name="console" target="SYSTEM_OUT">
            <PatternLayout pattern="[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %msg%n" />
        </Console>
    </Appenders>
    <Loggers>
        <Root level="debug" additivity="false">
            <appender-ref ref="console" />
            <appender-ref ref="fileLogger" level="info" />
        </Root>
    </Loggers>
</Configuration>

例如我感兴趣的日志: 由于这一行 iotClient.setKeepAliveInterval(30000),物联网客户端在 org.eclipse.paho.client.mqttv3.internal.ClientState#checkForActivity 中每 30 秒发送一次 ping 请求,我想在此过程中获取所有日志。

谢谢。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)