Drools日志配置异常:已设Error级别仍输出INFO日志
解决Logback中Drools/Kie相关日志屏蔽问题
嘿,我完全懂你被这些冗余日志刷屏的困扰!你之前的配置没生效,核心原因很简单:那些跳出来的日志不是来自org.drools包,而是来自org.kie.api.internal.utils.ServiceDiscoveryImpl——这个包和org.drools是平级的,所以你给org.drools设置的error级别根本管不到它。
两种解决方案任你选:
方案1:全局屏蔽所有Kie相关日志(简单粗暴)
如果不需要任何Kie相关的日志,直接给org.kie包设置error级别:
<logger name="org.kie" level="error"/>
方案2:精准屏蔽特定类的日志(更灵活)
要是你还想保留其他Kie组件的日志,只针对烦人的ServiceDiscoveryImpl类设置级别就行:
<logger name="org.kie.api.internal.utils.ServiceDiscoveryImpl" level="error"/>
修改后的完整Logback配置
把上面的配置项加到你原来的配置里,放在org.drools的logger后面就可以了:
<configuration scan="true"> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern> </encoder> </appender> <root level="info"> <appender-ref ref="STDOUT" /> </root> <logger name="org.drools" level="error"/> <!-- 新增的屏蔽配置 --> <logger name="org.kie.api.internal.utils.ServiceDiscoveryImpl" level="error"/> <logger name="org.optaplanner" level="info"/> </configuration>
这样修改后,那些Adding Service的INFO日志就会被彻底屏蔽,同时你还能保留org.optaplanner的INFO级别日志,root级别也不用改成error啦~
内容的提问来源于stack exchange,提问作者k88
相关产品推荐
相关产品推荐

