Logback.xml中的包过滤器

时间:2017-09-26 05:10:49

标签: spring-boot gradle logback

Project Structure

我想在每个mapper包下输出所有查询的日志。 我不想像这样定义每个映射器包,因为项目稍后会包含很多包。

don't want to do

我怎样才能达到这个目标?

<logger name="com.example.demo.*.mapper" level="DEBUG">
    <appender-ref ref="SAVE-TO-FILE" />
</logger>

2 个答案:

答案 0 :(得分:1)

我没有找到这个问题的答案。这就是为什么我自己使用 5 5:

进行了一些过滤
ch.qos.logback.core.filter.EvaluatorFilter

答案 1 :(得分:0)

您可以使用String常量作为记录器名称,而不是让Logback从当前类派生记录器名称。例如,com.example.demo.*.mapper包中的每个类都会声明一个这样的记录器:

// extract "MAPPER" to a shared constant to maybe provide a MapperLogger utility class 
Logger logger = LoggerFactory.getLogger("MAPPER");

然后您的记录器配置为:

<logger name="MAPPER" level="DEBUG">
    <appender-ref ref="SAVE-TO-FILE" />
</logger>

或者,您可以通过编程方式为com.example.demo.*.mapper包中的每个类创建记录器,并将每个类与您的SAVE-TO-FILE appender相关联。