3

我正在使用带有 SLF4J 和 Logback 的 Spring。Logger 使用自定义注解和BeanPostProcessor.

有没有办法在 logback.xml 中配置记录器,以便它的名称是某种表达?诸如 Ant 通配符之类的东西?这将帮助我专门为 jUnit 测试配置一个记录器。

我的目标是达到以下效果:

<logger name="my.package.**.*Test">
    ...
</logger>

我愿意接受更合适的解决方案。

4

2 回答 2

1

我不相信默认情况下这是可能的。很难确定,因为 logback 文档的编写方式不便于快速查找内容。它写在一个,嘿,你想使用 logback,好吧好吧,阅读 45 分钟怎么样。

无论如何,如果您实现自定义 LoggerFactory(实现org.slf4j.ILoggerFactory)并告诉 logback 使用您的工厂,您可能可以这样做。

于 2013-10-10T19:02:58.023 回答
1

此配置禁止所有日志,但记录器名称包含“测试”的日志除外。

<!-- 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>

于 2014-01-30T08:31:40.083 回答