当我使用log4j并执行
log.error("Exception message", ex);
我看到这样的东西
在sun.net.www.protocol.http.HttpURLConnection $ HttpInputStream.ensureOpen(HttpURLConnection.java:3366) 〜[?:1.8.0_171]在 sun.net.www.protocol.http.HttpURLConnection $ HttpInputStream.read(HttpURLConnection.java:3391) 〜[?:1.8.0_171]
为什么我在每一行的末尾看到Java版本,以及如何摆脱它?有些行还将包含其他信息,例如脚本开始的路径。
答案 0 :(得分:1)
使用log4j时,您提供了一个配置,该配置描述了“模式”,该模式描述了如何格式化每个“日志消息”。当记录一个throwable时,该模式的一部分可以控制堆栈跟踪的格式。如果您不为throwable提供显式格式,则它将使用默认格式,即按照您的示例添加JVM版本后缀。
这里是一个模式布局,它删除了默认的后缀。
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n %ex{suffix()}"/>
详细信息在这里-https://logging.apache.org/log4j/2.x/manual/layouts.html。