Я использую logback (с slf4j) для ведения журналов, и у меня есть много XML-контента для регистрации как в текстовых файлах, так и в HTML-файлах (с HTMLLayout). Однако logback просто вставляет необработанный XML в теги
для HTMLLayout, без экранирования или
processing.</p>
<p>Here is the snippet of my logback.xml:</p>
<pre><code><appender name="ALL" class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${DIR_ALL}/%d{yyyy-MM-dd}.%i.html</FileNamePattern>
<TimeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<MaxFileSize>500KB</MaxFileSize>
</TimeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
<layout class="ch.qos.logback.classic.html.HTMLLayout">
<pattern>%d{HH:mm:ss.SSS}%logger{1}%msg</pattern>
<cssBuilder class="ch.qos.logback.classic.html.UrlCssBuilder">
<url>${CSS_HREF}</url>
</cssBuilder>
<title>Logs (ALL)</title>
</layout>
</code>
И вот что я получил:
<td class="Message">(DemoCall) parsing response failed. Details:
<call><action>getmessage</action></call>
</td>
Что я ожидаю:
<td class="Message">(DemoCall) parsing response failed. Details:
<call><action>getmessage</action></call>
</td>
Или лучше обернуть вышеупомянутое сообщение тегом
.
Нужно ли расширять HTMLLayout для архивирования этого? Или это моя работа - создавать StringEscapeUtils.escapeHTML (msg) для каждого оператора журнала (я не собираюсь этого делать, поскольку также есть файловый аппендер, для которого экранирование не требуется).
Спасибо!