有没有办法禁用特定类的SQL语句记录?
我已经通过定义log4j记录器来启用SQL语句记录,这通常很好。不幸的是,我有一个非常频繁调用的类,它会给控制台带来很多输出。我想禁用仅针对单个类的日志记录。这可能吗?
答案 0 :(得分:0)
虽然可以定义每个类在log4j 1中记录的级别,例如:
<!-- Suppress success logging from InteractiveAuthenticationSuccessEvent -->
<logger name="org.springframework.security">
<level value="ERROR"/>
</logger>
无法对其进行微调。
要更好地控制日志记录,您需要升级log4j 2。
在Log4j 2中,您可以使用过滤器:
http://logging.apache.org/log4j/2.x/manual/filters.html
这是使用正则表达式过滤器的配置片段:
<?xml version="1.0" encoding="UTF-8"?>
<configuration status="warn" name="MyApp" packages="">
<appenders>
<RollingFile name="RollingFile" fileName="logs/app.log"
filePattern="logs/app-%d{MM-dd-yyyy}.log.gz">
<RegexFilter regex=".* test .*" onMatch="ACCEPT" onMismatch="DENY"/>
<PatternLayout>
<pattern>%d %p %C{1.} [%t] %m%n</pattern>
</PatternLayout>
<TimeBasedTriggeringPolicy />
</RollingFile>
</appenders>
<loggers>
<root level="error">
<appender-ref ref="RollingFile"/>
</root>
</loggers>
</configuration>
答案 1 :(得分:0)
不,你问的是不可能的。如果您不希望记录特定类(映射到表)但该表连接到另一个表,该怎么办?如果表是连接的一部分,您是否希望日志显示信息?