项目有大量的spring日志,log配置level无效的解决方案

思路:
    log配置文件的level无效,是因为启动spring的时候,log尚未加载。

解决方案:

    1、web.xml中的log监听器的启动顺序早于spring监听器。
    2、log配置文件生效后,可根据日志种类设置level进行拦截。

参考:
web.xml:
<listener>
    <listener-class>
        ch.qos.logback.ext.spring.web.LogbackConfigListener
    </listener-class>
</listener>
<listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>

logback.xml:
<logger name="org.springframework" level="ERROR"/>
<logger name="org.mybatis" level="ERROR"/>

补充:
    关于level可以在多个地方进行设置。
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %X{reqid} %c:%L %m%n</pattern>
        </encoder>
    </appender>
    <root level="DEBUG">
        <appender-ref ref="CONSOLE"/>
    </root>
    此处的level设置的是根节点,适用于CONSOLE(控制台),level为DEBUG,而<logger name="org.mybatis" level="ERROR"/>处的level的节点精度是高于根节点的,org.mybatis的日志在控制台输出时,level按ERROR处理。
   


版权声明:本文为qq_34790589原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。