本文介紹了Log4j2程序性消息替換(替換log4j中的PatternLayout)的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!
問題描述
我們正在將日志從log4j遷移到log4j2。但是,我在遷移擴展了PatternLayout
的類時遇到了問題,因為它現在是final
。
舊模式布局代碼將和
的所有匹配項替換為
|
,如果它是堆棧跟蹤,則除外。
我查閱了log4j2的文檔,但還沒有找到很好的解決這種問題的方法。到目前為止,我認為這不可能使用XML配置,而只能使用Java代碼。
如果滿足條件,我們如何替換日志字符串中的某些字符?
有什么想法嗎?
推薦答案
您可以使用regexp替換這些字符。
https://logging.apache.org/log4j/2.x/manual/layouts.html
%replace{%msg}{[
]+}{}
這似乎是一個重復的問題:How to remove or replace newline from log messages log4j
另一方面,PatternLayout
擴展了AbstractStringLayout
,因此您可以創建”自定義PatternLayout“。
https://github.com/apache/logging-log4j2/blob/master/log4j-core/src/main/java/org/apache/logging/log4j/core/layout/PatternLayout.java
這篇關于Log4j2程序性消息替換(替換log4j中的PatternLayout)的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,