XML:将块替换为“变量”
我有一个logback配置xml文件,我想做的是创建两个除了文件名之外完全相同的appender。e、 g:XML:将块替换为“变量”,xml,xml-parsing,logback,Xml,Xml Parsing,Logback,我有一个logback配置xml文件,我想做的是创建两个除了文件名之外完全相同的appender。e、 g: <appender name="app1" class="c"> <encoder> <pattern> My pattern </pattern> </encoder> <file> file 1 </file> </appender> <appen
<appender name="app1" class="c">
<encoder>
<pattern> My pattern </pattern>
</encoder>
<file> file 1 </file>
</appender>
<appender name="app2" class="c">
<encoder>
<pattern> My pattern </pattern>
</encoder>
<file> file 2 </file>
</appender>
是否有一种方法可以让我进行“xml变量替换”,从而使两个appender中的块相同
<encoder>
<pattern> My pattern </pattern>
</encoder>
您可以为编码器元素声明一个实体:
例如,class=c仍然有一些重复,但没有那么多。因此,虽然原则上当my模式很简单时,这是可行的,但对于logback,my模式字符串中有%,并且在解析该字符串时存在一些问题。”日期-[%level]-来自%thread%n%message%n%xException%n'中的%logger。这将解决我的部分问题,我将四处寻找解决这个问题的方法。错误:参数实体引用%消息;必须以“;”结尾定界符。谢谢。@user247077您可以将百分号表示为字符引用&x25;,e、 g.日期-[&x25;级别]。。。。或者如果太长,则声明另一个,然后使用&p;完美的谢谢奥托,我才意识到我无意中在这个问题上投了你一票。对不起,我现在无法更改它
<!DOCTYPE configuration [
<!ENTITY encoder "<encoder><pattern> My pattern </pattern></encoder>">
]>
<configuration>
<appender name="app1" class="c">
&encoder;
<file> file 1 </file>
</appender>
<appender name="app2" class="c">
&encoder;
<file> file 2 </file>
</appender>
</configuration>