我正在使用以下转换模式
log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS Z} [%t] %-5p %c- %m%n
但是我想删除换行符。
我尝试使用%replace(%ex){'[\r\n]+', '\\n'}%nopex%n
但是它不起作用%replace不起作用。它只会读取%r ,然后替换
答案 0 :(得分:0)
似乎您没有使用%replace
的正确语法-有关正确的语法,请参见Log4j Layouts。
使用正确的语法,您可以使用以下表达式删除所有换行符:
%replace{%msg}{[\r\n]+}{}
但是,在某些情况下,完全删除换行符会使日志难以阅读。我建议,不要删除,而是用一些东西替换换行符,例如这样的arrow character: ↵(我选择它的原因是与Enter key上的符号相似)。
所以我建议使用这种模式:
%replace{%msg}{\r?\n}{↵}
答案 1 :(得分:0)
@Tomasz Linkowski建议的替代方法是在末尾添加新行
%replace{%msg}{[\r\n]}{}%n
答案 2 :(得分:0)
我也遇到了同样的问题,在对其进行调查后,我发现log4j 1.x上不存在%replace选项。
@Tomasz为log4j layouts添加的链接用于log4j 2.x(您可以在页面顶部的左侧看到该版本)。
此外,从this的答案中您可以了解到,并非log4j 2.x的所有选项都在1.x上可用