如何在Websphere自由配置文件中配置跟踪

时间:2020-11-06 13:42:11

标签: java websphere websphere-liberty open-liberty

我想查看HTTPURLConnection类的跟踪日志以调试调用远程服务时遇到的问题。

我试图在server.xml中配置跟踪,如下所示。

<logging logDirectory="logs" copySystemStreams="true" consoleLogLevel="INFO" traceFileName="trace.log" traceSpecification="sun.net.www.protocol.http.HttpURLConnection=finest" maxFileSize="50" maxFiles="50"/>

服务器启动时,它会在 trace.specification 中显示我的配置。

********************************************************************************
product = WebSphere Application Server 20.0.0.9 (wlp-1.0.44.cl200920200820-0913)
wlp.install.dir = /Users/ilam/liberty20.9/wlp/
java.home = /Library/Java/JavaVirtualMachines/jdk1.8.0_261.jdk/Contents/Home/jre
java.version = 1.8.0_261
java.runtime = Java(TM) SE Runtime Environment (1.8.0_261-b12)
os = Mac OS X (10.15.7; x86_64) (en_GB)
process = 54509@MYMACHINE
trace.specification = *=info:sun.net.www.protocol.http.HttpURLConnection=finest
********************************************************************************

但是我明白了

The configured trace state included the following specifications that do not match any loggers currently registered in the server: sun.net.www.protocol.http.HttpURLConnection=all Ignore this message if the trace specifications sun.net.www.protocol.http.HttpURLConnection=all are valid.

trace.log文件中没有来自HttpURLConnection类的日志。那么我该如何配置

2 个答案:

答案 0 :(得分:2)

对于https://openliberty.io/docs/20.0.0.11/log-trace-configuration.html,Liberty会将您写入java.util.logging的内容聚合到其日志文件(messages.log和trace.log)中。

如果尽管设置了适当的traceSpecification,但您认为具有JUL跟踪工具的东西仍未显示在Liberty跟踪中,则您可能需要仔细检查以确保JUL Logger实际上已注册。您剪切/粘贴的日志消息显示,至少在处理跟踪规范时,指定的记录器尚未在LogManager中注册。

检查注册哪些Logger的一种方法是使用LoggingMXBean(https://docs.oracle.com/javase/8/docs/api/java/util/logging/LoggingMXBean.html)获取记录器名称,以查看它们试图启用的记录器在服务器运行时是否确实存在。 / p>

您可以从jre / bin目录的jconsole访问LoggingMXBean。

如果您要查找的Logger不在列表中,则可能是因为该类使用了不同的Logger名称(使用包名和类名作为Logger名称只是一种约定),或者使用Logger的类尚未达到注册其Logger的代码中的位置(尽管在初始化类时注册JUL logger相当普遍)。

答案 1 :(得分:1)

Liberty跟踪适用于Liberty代码,但是要跟踪的类是JVM的一部分,因此您需要以不同的方式对其进行跟踪。确切地说,它是特定于JVM的,但是这可能有效:https://www.rgagnon.com/javadetails/java-debug-HttpURLConnection-problem.html