代码之家  ›  专栏  ›  技术社区  ›  Roman Goyenko

Log4J的Java版本中每一行的堆栈跟踪结束

  •  0
  • Roman Goyenko  · 技术社区  · 6 年前

    当我使用log4j和do时

    log.error("Exception message", ex);
    

    我看到像这样的东西

    在 Sun.net .www.协议. http.httpUpLink $httpPutsField.EnSueReunToT(httpUpLo连接.java:3366) ~?:1.8.0_171]在 http.net http:http:httpUpLink连接$httpPixStudio.Read(httpUpLo连接.java:3391) ~?1.1.0y171]

    为什么我在每行的末尾看到Java版本,如何摆脱它呢?有些行还具有其他信息,比如脚本开始的路径。

    1 回复  |  直到 6 年前
        1
  •  1
  •   dan.m was user2321368    6 年前

    当使用log4j时,您提供了一个描述“模式”的配置,该模式描述了如何格式化每个“日志消息”。该模式的一部分可以在记录可丢弃项时控制堆栈跟踪的格式。如果您没有为一次性文件提供显式格式,它将使用默认格式,即根据您的示例添加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 .