Spring Integration DSL配置.log()为DEBUG级别不生效如何解决
问题根因
你在.log()方法中显式指定了自定义的日志分类some category,Spring Integration输出该日志时会优先用你指定的这个分类做级别校验,你当前的配置文件中没有给该分类设置DEBUG级别,因此日志被过滤无法输出。
解决方法
方案1:新增自定义分类的日志级别配置
在你的application.yml中补充自定义日志分类的级别配置,如果分类名包含空格,建议用引号包裹避免YAML解析异常:
logging.level: org.springframework.integration: DEBUG com.my.namespace: DEBUG "some category": DEBUG
方案2:省略自定义分类,使用默认分类
如果你不想单独新增配置,可以去掉.log()方法的第二个分类参数,此时日志会使用Spring Integration的默认分类,你已经配置了org.springframework.integration: DEBUG,日志就会正常输出:
.log(DEBUG, m -> "print something using: " + m.getPayload())
方案3:复用已配置的业务命名空间作为分类
你已经配置了com.my.namespace的日志级别为DEBUG,可以直接把该路径(或子路径)作为日志分类,不需要额外新增配置:
.log(DEBUG, "com.my.namespace.integration.flow", m -> "print something using: " + m.getPayload())
补充验证点
如果配置后仍然不生效,可以确认你导入的日志级别常量是否正确,需要是org.springframework.integration.handler.LoggingHandler.Level下的DEBUG枚举,不要错导其他包的日志级别常量。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

