作为Web应用程序配置的一部分,sysadmins可以编辑一个XML文件。在大多数情况下,它是独立的,但有些情况下,格式错误的XML配置可能会导致问题。
在我的Log4J appender配置中,我有以下String
PatternLayout
以及输出中包含<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{1} - %enc{%msg}%n"/>
的几个字符串,用于警告用户XML文件中特定的缺失或无效属性。但是,日志输出显示
<$tag></$tag>
使用上述... <$tag></$tag> tags in $XML.xml are properly defined ...
。
有没有办法逃避仅尖括号,以便它们在日志中按预期显示?
答案 0 :(得分:1)
您告诉它通过%enc{}
:
https://logging.apache.org/log4j/2.x/manual/layouts.html
具体做法是:
&amp;,&lt;,&gt;,“,',/ /替换为相应的HTML实体
如果您需要在浏览器中查看它们,请在前往浏览器的途中对消息进行编码。日志是您的记录系统,视图(或视图的路径)应该改变它。
另一种解决方案是使用equals{pattern}{test}{substitution}
替换尖括号。我的直觉反应是不这样做;如果系统无法安全地查看日志,那么该系统应该负责解决该问题 - 这是众所周知的解决方案中的一个众所周知的问题。