在我的Logback.xml上,我具有ConsoleAppender的以下模式:
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %highlight(%-5level) %cyan(%logger{36}).%M\(%line\) - %replace(%msg){'[A-Z]{6}[0-9A-Z]{5}\d{3}','**************'} %n</pattern>
</encoder>
但这仅在本地有效,而不能通过Gelf / Logsforwarder进行。
在我的java gelf库中,我发现了以下“可能性”:
// personalize the GelfLayout and enable more properties
GelfLayout gelfLayout = new GelfLayout();
gelfLayout.setContext(context);
gelfLayout.setIncludeRootCauseData(true);
gelfLayout.setIncludeLevelName(true);
// add static fields to each gelf message
gelfConfigProperties.getAdditionalFields().entrySet().stream()
.map(additionalField -> additionalField.getKey() + ":" + additionalField.getValue())
.forEach(gelfLayout::addStaticField);
PatternLayout patternLayout = new PatternLayout();
patternLayout.setPattern("%replace(%msg){'[A-Z]{6}[0-9A-Z]{5}\\d{3}','**************'}%n");
gelfLayout.setFullPatternLayout(patternLayout);
gelfLayout.setShortPatternLayout(patternLayout);
但是现在short_message
和full_message
的Kibana上的输出为空。
我们正在使用de.siegmar:logback-gelf:1.1.0
是否可以替换Gelf日志消息中的文本?
谢谢。