Spring 集成 DSL:如何将 logging.level 设置为 DEBUG for .log()
Spring Integration DSL: How can I set the logging.level to DEBUG for .log()
如何将 .log()
条目的 logging.level
级别更改为低于 INFO
的级别?默认情况下,它似乎只记录 INFO
及以上。我无法让它记录 DEBUG
和 TRACE
.
我试过了(在application.yml):
logging.level:
org.springframework.integration: DEBUG
com.my.namespace: DEBUG
但到目前为止还没有成功。将 org.springframework.integration
的 logging.level 设置为 DEBUG 确实会记录一大堆 DEBUG 内容,但不是我自己的 .log()
语句。
更新::我正在使用 .log()
这样的:
.log(DEBUG, "some category", m -> "print something using: " + m.getPayload())
但是当我将日志级别设置为 DEBUG 时,什么也没有打印出来。仅当我这样使用 INFO 时:
.log(INFO, "some category", m -> "print something using: " + m.getPayload())
log()
运算符完全基于 LoggingHandler
: https://docs.spring.io/spring-integration/docs/current/reference/html/messaging-endpoints.html#logging-channel-adapter 并且它是这样实现的:
public B log() {
return log(LoggingHandler.Level.INFO);
}
因此,它 INFO
独立于您目前在配置中的内容。
因此,如果您想更改一些 log()
运算符默认值,您应该考虑一些适当的替代方案,例如可以提供所需级别的相同变体:
public B log(LoggingHandler.Level level) {
它可以通过永久配置来完成,但只能通过自定义 属性 和一些转换逻辑,如 LoggingHandler.Level.valueOf(level.toUpperCase())
。
更新
要使其在日志中可见,您必须提供 org.springframework.integration: DEBUG
,因为这是 LoggingHandler
的默认类别。或者使用不同的 log()
变体:
log(LoggingHandler.Level级别,字符串类别)
例如:
log(LoggingHandler.Level.DEBUG, "my.category")
并在您的日志记录配置中提供该类别。否则它将依赖默认(root?)级别。
所以,根据你在问题中的代码,它必须是这样的:
logging.level:
com.my.namespace: DEBUG
.log(DEBUG, "com.my.namespace", m -> "print something using: " + m.getPayload())
如何将 .log()
条目的 logging.level
级别更改为低于 INFO
的级别?默认情况下,它似乎只记录 INFO
及以上。我无法让它记录 DEBUG
和 TRACE
.
我试过了(在application.yml):
logging.level:
org.springframework.integration: DEBUG
com.my.namespace: DEBUG
但到目前为止还没有成功。将 org.springframework.integration
的 logging.level 设置为 DEBUG 确实会记录一大堆 DEBUG 内容,但不是我自己的 .log()
语句。
更新::我正在使用 .log()
这样的:
.log(DEBUG, "some category", m -> "print something using: " + m.getPayload())
但是当我将日志级别设置为 DEBUG 时,什么也没有打印出来。仅当我这样使用 INFO 时:
.log(INFO, "some category", m -> "print something using: " + m.getPayload())
log()
运算符完全基于 LoggingHandler
: https://docs.spring.io/spring-integration/docs/current/reference/html/messaging-endpoints.html#logging-channel-adapter 并且它是这样实现的:
public B log() {
return log(LoggingHandler.Level.INFO);
}
因此,它 INFO
独立于您目前在配置中的内容。
因此,如果您想更改一些 log()
运算符默认值,您应该考虑一些适当的替代方案,例如可以提供所需级别的相同变体:
public B log(LoggingHandler.Level level) {
它可以通过永久配置来完成,但只能通过自定义 属性 和一些转换逻辑,如 LoggingHandler.Level.valueOf(level.toUpperCase())
。
更新
要使其在日志中可见,您必须提供 org.springframework.integration: DEBUG
,因为这是 LoggingHandler
的默认类别。或者使用不同的 log()
变体:
log(LoggingHandler.Level级别,字符串类别)
例如:
log(LoggingHandler.Level.DEBUG, "my.category")
并在您的日志记录配置中提供该类别。否则它将依赖默认(root?)级别。
所以,根据你在问题中的代码,它必须是这样的:
logging.level:
com.my.namespace: DEBUG
.log(DEBUG, "com.my.namespace", m -> "print something using: " + m.getPayload())