apache Camel Spring Boot 应用程序上的日志记录问题

问题描述 投票:0回答:1

我继承了一个 apache Camel Spring Boot 应用程序,但在日志记录方面遇到了问题。 路由组件使用 lombok.extern.slf4j.Slf4j 注释进行注释。 正常日志工作正常,但路由中的日志不工作:

@Slf4j
@Component
public class MyRoute extends RouteBuilder {
    @Override
    public void configure() {
         log.info("Working normally");

         from("direct:source")
             .log("Not working")
             .to("direct:target");
    }
}

logback.xml文件的内容是:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/Logging/Logback/base.xml"/>
    <logger name="com.myapp" level="INFO"/>
    <logger name="com.apache.camel" level="INFO"/>
    <logger name="org.springframework.boot" level="INFO"/>
    <logger name="org.springframework.web" level="INFO"/>
    <logger name="com.netflix" level="INFO"/>
    <logger name="com.netflix.discovery.shared.resolver.aws.ConfigClusterResolver" level="WARN"/>
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>$(APP_HOME}/logs/myapp-${spring.profiles.active).log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRolling Policy">
            <fileNamePattern>$[APP_HOME}/logs/archive/myapp-${spring.profiles.active]-%d{yyyy-MM-dd).log.gz</fileNamePattern>
            <maxHistory>30</maxHistory>
        </rollingPolicy>
    </appender>
    <root level="ERROR">
        <appender-ref ref="FILE"/>
    </root>
</configuration>

所以,路由中的日志不起作用。如果,我在路由中执行内联处理器并使用 slf4j log.info() 进行日志记录,则可以正常工作。

java spring-boot apache-camel logback slf4j
1个回答
0
投票

Camel 路由中的

log
(不起作用)使用route_id 作为记录器名称。您可以将其更改为您选择的名称。 log.info是直接调用logger框架,常见的是使用类名作为日志名。

查看日志EIP文档 https://camel.apache.org/components/4.4.x/eips/log-eip.html

© www.soinside.com 2019 - 2024. All rights reserved.