Log4j 没有在我的骆驼路线中登录正确的文件夹

Log4j does not log in the right folder in my camel route

下面是我的log4j.xml放在MyProject/src/main/resources 我在其中使用 FileAppender 将日志重定向到 log.log

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>

<appender name="FILE" class="org.apache.log4j.FileAppender">

   <param name="file" value="D:/SHARED/log.log"/>
   <param name="immediateFlush" value="true"/>
   <param name="threshold" value="debug"/>
   <param name="append" value="false"/>

   <layout class="org.apache.log4j.PatternLayout">
      <param name="conversionPattern" value="%m%n"/>
   </layout>
</appender>

<logger name="log4j.rootLogger" additivity="false">
   <level value="DEBUG"/>
   <appender-ref ref="FILE"/>
</logger>

</log4j:configuration>

下面是我在pom.xml中添加的依赖项,如下面link http://camel.apache.org/how-do-i-use-log4j.html

<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.2</version>
    </dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

下面是我的路线,它只是将文件从目录发送到 jms 队列

public void configure() throws Exception {
            super.configure();

            from("file://E://Target//Customers")
            .transacted()
            .log(LoggingLevel.INFO,"FolderToJMS","Sending File to JMS Queue")
            .to("jmstx:queue:transaction-handler");
    }

我已经在服务组合中部署了我的路线。完成所有这些后,我无法在 D:/SHARED 中找到日志文件。

我还需要做些什么吗...??

了解 ServiceMix/Karaf 使用的 pax-logging。您不能拥有自己的日志配置,但需要使用 pax-logging 进行配置。

您可以在 Karaf 网站上找到关于此的文档