有没有办法禁用特定类的 SQL 语句的日志记录?
我通过定义一个一般来说很好的 log4j 记录器来启用 SQL 语句记录。不幸的是,我有一个类被非常频繁地调用并产生大量的控制台输出。我想仅禁用单个类的日志记录。这可能吗?
尽管可以在 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>
不,你问的是不可能的。如果您不想记录特定类(映射到表)但该表连接到另一个表怎么办。如果表是联接的一部分,您是否希望日志显示信息?