如何在Spring XD 中实现自定义模块的日志记录?

How to implement logging in custom module in Spring XD?

调试部署到 Spring XD 运行时(版本 1.3.1-RELEASE)的自定义模块并不容易。

我知道 log 下沉,但是我想要实现的是不同的东西。

我想将我自己的日志消息添加到 XD 日志中(最好添加到 STDOUT 以及它自己的日志中)。这些日志消息是在我的自定义模块(本例中为处理器)中使用 slf4j API.

生成的

我添加了:

  1. org.slf4j.Logger#info 调用处理器 class
  2. logback-classicpom.xml 的依赖(w/o 一个版本,因为它由 spring-xd-module-parent dependencyManagement
  3. 管理
  4. logback.xmlresources 目录
  5. logback-test.xmltest resources 目录

日志消息在集成测试调用期间(通过 SingleNodeIntegrationTestSupport)记录到 STDOUT,但是当上传模块或部署使用它的流时,它们不会出现在 XD 日志中。

logback.xml 内容(与 -test 相同):

<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <encoder>
        <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        <charset>UTF-8</charset>
    </encoder>
</appender>

<logger name="com.maxromanovsky" level="debug" />
<logger name="org.springframework" level="warn" />
<logger name="org.apache.zookeeper" level="error" />

<root level="warn">
    <appender-ref ref="STDOUT" />
</root>

容器 logback 配置文件可以在 xd/configxd-container-logback.groovyxd-singlenode-logback.groovy)中找到。

您需要在此处添加自定义记录器配置。