堆栈跟踪每行末尾的Log4j Java版本

时间:2018-09-25 19:11:37

标签: java log4j

当我使用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版本,以及如何摆脱它?有些行还将包含其他信息,例如脚本开始的路径。

1 个答案:

答案 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