我想从Java堆栈跟踪中删除换行符。
我有以下logback格式 -
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %replace(%msg){'\n', ''}%n</pattern>
我希望它能替换消息中的换行符,但它并没有这样做。 我看到打印出带有换行符的堆栈跟踪。
然而,如果我使用以下模式(仅用于测试目的)-
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %replace(%msg){'.*', 'x'}%n</pattern>
我发现消息被字符x替换,但堆栈跟踪仍然按原样打印。
这让我相信logback独立处理堆栈跟踪。 我已经阅读了logback文档,它说可以通过(%ex)引用堆栈跟踪。
但是,我每次只能使一个模式处于活动状态。 如何确保在堆栈跟踪中不会出现换行符?
%nopex
的行为方式已经发生了一些变化,或者那时候它实际上是一个错误。当我尝试使用logback-classic v1.2.3进行操作时,它根本不会打印任何ERROR日志。但是,当我删除%nopex
符号时,它会将相同的ERROR日志打印两次(一个替换了换行符,另一个则完全保持原样)。 - emrekgn