打开JDK及其他底层API日志接口,诊断程序问题
#Java/JMX 遇到一个问题,使用JMX 连接Tomcat,连接的IP是10.1.0.?,在创建连接的时候,会抛出网络连接超时的Exception,迷茫的是,Exception中提示是10.0.0.?的网络连接超时。 一时各种怀疑,但是都找不到问题;后在stackoverflow 上找到打开JMX日志的方式,觉得此方法具有解决这一类问题的通适性。 创建属性文件(.properties)```handlers= java.util.logging.ConsoleHandler.level=ALL java.util.logging.FileHandler.pattern = jmx.logjava.util.logging.FileHandler.limit = 50000java.util.logging.FileHandler.count = 1java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter java.util.logging.ConsoleHandler.level = FINESTjava.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter // Use FINER or FINEST for javax.management.remote.level - FINEST is// very verbose...//javax.management.level=FINESTjavax.management.remote.level=FINEST java.security.debug=all``` 在调用测试程序时,配置使用上述属性文件:```java -Djava.util.logging.config.file=./logging.properties JMXDemoClient ``` _假设你的测试程序被编译为 JMXDemoClient.class_ 通过这种方式,在我的案例中,日志清楚的显示,是JMX Server(此处是Tomcat)要客户端去跟10.0.0.? 连接;所以一定是Tomcat端的配置有问题,进行检查后,发现服务器IP地址变更后,`java.rmi.server.hostname` 没有做更新,仍然是原来的IP地址。 总结: 通过调整属性文件,可以输出任意底层API的各种级别日志。