我正在使用log4j2。这是我的xml:
<Appenders>
<Console name="STDOUT" target="SYSTEM_OUT">
<RegexFilter regex=".*\\binsert\\b.*|.*\\bupdate\\b.*|.*\\bdelete\\b.*" onMatch="ACCEPT" onMismatch="DENY" />
<PatternLayout pattern="%mdc{usuario} - %m%n" />
</Console>
<RollingFile name="file-log" fileName="c:/logs/SIGE.log"
filePattern="c:/logs/SIGE-%d{yyyy-MM-dd}.log">
<PatternLayout>
<pattern>[%-5level] [%mdc{usuario}] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} - %m%n</pattern>
</PatternLayout>
<RegexFilter regex=".*\\binsert\\b.*|.*\\bupdate\\b.*|.*\\bdelete\\b.*" onMatch="ACCEPT" onMismatch="DENY" />
<Policies>
<SizeBasedTriggeringPolicy />
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<logger name="org.hibernate.SQL" level="DEBUG" additivity="false">
<AppenderRef ref="STDOUT" />
<AppenderRef ref="file-log" />
</logger>
<logger name="org.hibernate.type" level="TRACE" additivity="false">
<AppenderRef ref="STDOUT" />
<AppenderRef ref="file-log" />
</logger>
</Loggers>
我的想法是过滤只记录hibernate的更新,插入和删除语句。但有了这个,它没有记录任何东西,如果我评论它完整记录的regexfilter线。我正在使用最后一个hibernate版本。 提前致谢! 尼古拉斯。
答案 0 :(得分:2)
由于正则表达式是XML元素的属性值,因此您不需要像Java语言中的字符串文字那样转义\
字符,但前提是字符是单引号({ {1}})或双引号('
)。在这种情况下,您应分别使用"
和'
。 1
因此,您的正则表达式可以是:
"
备注的
http://www.w3.org/TR/2008/REC-xml-20081126/#syntax
要允许属性值包含单引号和双引号,撇号或单引号字符(')可以表示为“
<RegexFilter regex=".*\b(insert|update|delete)\b.*" onMatch="ACCEPT" onMismatch="DENY"/>
”,双引号字符(“)表示为”{{ 1}}“。