当前位置: 首页 > 知识库问答 >
问题:

Camel Spring Boot调试日志记录不工作

晋涛
2023-03-14

通过设置日志记录,我无法让Camel DSL在Spring Boot下将调试日志打印到控制台。级别设置为应用程序中的包名称。属性:

logging.level.org.test.logdemo调试

如果我将LoggingLevel设置为INFO或WARN,则日志会打印:

.when(simple("${exchangeProperty.xmltestresult} == ''"))
  .log(LoggingLevel.INFO, "2nd choice ID was empty")
  .log(LoggingLevel.WARN, "2nd choice ID was empty")
  .log(LoggingLevel.DEBUG,"2nd choice ID was empty")

^信息和警告打印,调试不打印。

如果我为路由指定一个名称,并在application.properties文件中引用它,则打印DEBUG日志:logging.level.FileRoute=debug

from("file:///home/user/xmlfilein").routeId("FileRoute")
...
.when(simple("${exchangeProperty.xmltestresult} == ''"))
  .log(LoggingLevel.INFO,"2nd choice ID was empty")
  .log(LoggingLevel.WARN,"2nd choice ID was empty")
  .log(LoggingLevel.DEBUG,"2nd choice was empty")

^所有这些日志都是打印的。

我刚刚开始使用Camel Spring Boot,我使用Spring初始化器生成了这个项目,它提供了以下pom。xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>org.test</groupId>
    <artifactId>logdemo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>logdemo</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>11</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.camel.springboot</groupId>
            <artifactId>camel-spring-boot-starter</artifactId>
            <version>3.11.1</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

设置日志记录。数量root=debug也可以工作,并在控制台中充斥调试消息,我正试图避免:)

有没有其他人经历过这种情况并提出了解决方案?是否有更上层/下层的东西覆盖了package=debug设置?

这是这个版本的Camel/Spring Boot的已知错误吗?迄今为止,我所阅读的所有内容都表明这应该有效。

共有1个答案

莫承运
2023-03-14
logging.level.org.test.logdemo=debug

此行将只打印由org.test.logdemo包下的类记录的日志。它不会打印未显式记录的apache camel日志

你可以试试用

logging.level.org.apache.camel=debug

它将打印org下的所有日志。阿帕奇。骆驼package。

我的建议是首先设置logging.level.root=debug,然后找出哪些类或包正在记录您想要的信息。然后将org.apache.camel更改为logging.level.org.apache.camel=debug中的包或类名

例如,如果日志是由RouteBuilder类打印的,那么属性应该是

logging.level.org.apache.camel.builder=debug
 类似资料:
  • 一般来说,你应该在运行时增加调试选项来调试问题;也可以把调试选项添加到 Ceph 配置文件里来调试启动问题,然后查看 /var/log/ceph (默认位置)下的日志文件。 Tip 调试输出会拖慢系统,这种延时有可能掩盖竞争条件。 日志记录是资源密集任务。如果你碰到的问题在集群的某个特定区域,只启用那个区域对应的日志功能即可。例如,你的 OSD 运行良好、元数据服务器却不行,这时应该先打开那个可疑

  • 互联网上有许多帖子建议如何从logback迁移到log4j2进行Spring引导日志记录。 参考这个sof post-Spring Boot日志与log4j2-我已经配置我的项目使用log4j2。然后我添加了一些基本的log4j2.xml和log4j2.properties文件来测试。 但是在这些更改之后,我的项目无法进行任何日志记录。有人能帮我找出毛病吗? 项目代码可在github-https:

  • 这是数据库架构 下面是我的log4j属性文件在写入文件时的工作版本

  • 我一直在尝试关闭石英的恼人的调试日志记录。我使用log4j作为日志框架,我已经尝试将这一行添加到lg4j属性文件中 我仍然收到大量的调试日志消息 如何关闭此功能? 编辑。我已经将我的配置移动到xml文件...但仍然遇到同样烦人的问题 编辑2。。。这是我的pom。xml文件(有趣的部分) 类路径中的EDIT3 jar

  • 我有一个项目,其中日志方面应用于方法的进入和退出。 要禁用日志,我有下面的语句,但我仍然在日志中看到方法entry、exit(带有跟踪的LogLevel) 但是,当我将loglevel更改为critical(如下所示)时,不会记录方法的进入/退出。 不应该是日志级别。无抑制进入/退出跟踪?

  • 我如何让Hibernate4通过Logback登录?我有一个战争部署到野飞8决赛,我正在使用slf4j与日志。日志记录设置在应用程序中100%工作,控制台附加器和文件附加器都按预期工作。 我在日志中没有看到任何与冬眠有关的东西。 我从hibernate中看到任何东西的唯一一次是在persistence.xml中添加: 但它将日志记录到服务器日志和控制台中,而不是记录到我的日志附加程序中,即使我的根