我正在使用Spring和SLF4J以及Logback。
使用自定义注释和BeanPostProcessor
将记录器自动注入bean。
有没有办法在logback.xml中配置logger,以便它的名称是某种表达式?像Ant通配符之类的东西?这将有助于我专门为jUnit测试配置一个记录器。
我的目标是实现以下目标:
<logger name="my.package.**.*Test">
...
</logger>
我愿意接受更合适的解决方案。
答案 0 :(得分:1)
我认为默认情况下不可能。很难确定,因为logback文档的编写方式不容易快速查找内容。它写在一个,嘿你想使用logback,好吧如何阅读45分钟的方式。
无论如何,如果实现自定义LoggerFactory (实现 org.slf4j.ILoggerFactory )并告诉logback使用您的工厂,您可以这样做。
答案 1 :(得分:0)
此配置会禁止所有日志,但记录器名称包含“Test”的日志除外。
<!-- Drops all logs except those from "Test" classes -->
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator>
<expression>return logger.contains("Test");</expression>
</evaluator>
<OnMismatch>DENY</OnMismatch>
<OnMatch>ACCEPT</OnMatch>
</filter>
</appender>
<root level="DEBUG">
<appender-ref ref="STDOUT" />
</root>