我找不到可以与 logback 集成并对 HTML 字符进行编码的现有库或工具。所以我创建了一个自定义的 logback MessageConverter。
import org.apache.commons.text.StringEscapeUtils;
import ch.qos.logback.classic.pattern.MessageConverter;
public class HtmlContentEncoderMessageConverter extends MessageConverter {
@Override
public String convert(ILoggingEvent event) {
return StringEscapeUtils.escapeHtml4(super.convert(event));
}
}
我将此转换器添加到logback-spring.xml中的 logback 配置中,
<conversionRule conversionWord="htmlEncode" converterClass="<path_to_class>.HtmlContentEncoderMessageConverter">
最后在application.properties的日志模式中使用了这个 conversionWord ,
logging.pattern.console: %d ${LOG_LEVEL_PATTERN:-5%p} ... %crlf(%htmlEncode{%m%ex})
没有消息转换器的日志,
This is a
test quote with HTML
< testTag >.
使用crlf和htmlEncode消息转换器的日志,
This is a_test quote with HTML_< testTag >
其他尝试过的方法,