springboot日志按目录设置级别

我们的项目的目录情况为:

aaa.bbb.ccc为根目录,下面再按业务建目录,如:api、app,每个目录下面再建controller、service、mapper等

即:

aaa.bbb.ccc
    api
        controller
            apiController.java
        service
            apiService.java
        mapper
            apiMapper.java
    app
        controller
            appController
        service
            appService.java
        mapper
            appMapper.java 

因此,想打印mybatis日志,需要指定aaa.bbb.ccc目录的日志级别为debug

但是有一天,我突然发现,虽然sql日志还是在打印,但是有大量的跟字符串相关的日志被打印,每个sql会产生几百条该类日志,经检查发现是另外一个同事配置了fastjson在值转换前打印了该信息,而他配置的fastjson的目录在aaa.bbb.ccc.config下,即:

aaa.bbb.ccc
    config
        fastjsonConfig.java
    api
        controller
            apiController.java
        service
            apiService.java
        mapper
            apiMapper.java
    app
        controller
            appController
        service
            appService.java
        mapper
            appMapper.java 

如何排除fastjson.java中打印的日志而又不影响sql日志打印?

一开始我的想法是用通配符,经尝试:

aaa.bbb.ccc.**.mapper

aaa.bbb.ccc.*.mapper

都无法找到sql!!!

后尝试为目录分别指定日志级别,尝试成功!

最终springboot的yml配置文件中的日志配置方式为:

logging:
  level:
    root: warn
    aaa.bbb.ccc: debug #打印sql,需要级别debug。位置为mapper所在的目录
    aaa.bbb.ccc.config: warn #例外!不打印配置相关的低级别的日志

 

你可能感兴趣的:(java,springboot,日志)