问题描述
我在我的 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 (将#修改为@)