使用log4j 2时获取log4j 1错误

使用log4j 2时获取log4j 1错误,log4j,log4j2,Log4j,Log4j2,我已经试过了: 当我将jar文件部署到docker映像时,我得到了一个log4j 1 appender错误,但当我在Eclipse中运行main方法时,没有看到这个错误 log4j:警告:找不到记录器的附加器(blah)。 log4j:警告请正确初始化log4j系统。 log4j:有关更多信息,请参阅警告 这是我的依赖项 <dependencies> <!-- QUARTZ Required --> <dependency>

我已经试过了:

当我将jar文件部署到docker映像时,我得到了一个log4j 1 appender错误,但当我在Eclipse中运行main方法时,没有看到这个错误

log4j:警告:找不到记录器的附加器(blah)。 log4j:警告请正确初始化log4j系统。 log4j:有关更多信息,请参阅警告

这是我的依赖项

    <dependencies>
    <!-- QUARTZ Required -->
    <dependency>
        <groupId>org.quartz-scheduler</groupId>
        <artifactId>quartz</artifactId>
        <version>2.3.2</version>
    </dependency>

    <!-- Kafka -->
    <dependency>
        <groupId>org.apache.kafka</groupId>
        <artifactId>kafka_2.12</artifactId>
        <version>2.3.1</version>
    </dependency>

    <!-- SSO Web Form -->
    <dependency>
        <groupId>org.jsoup</groupId>
        <artifactId>jsoup</artifactId>
        <version>1.11.3</version>
    </dependency>
    <dependency>
        <groupId>net.sourceforge.htmlunit</groupId>
        <artifactId>htmlunit</artifactId>
        <version>2.34.1</version>
    </dependency>

    <!-- JSON -->
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-databind</artifactId>
        <version>2.10.0</version>
    </dependency>
    <dependency>
        <groupId>com.fasterxml.jackson.core</groupId>
        <artifactId>jackson-core</artifactId>
        <version>2.10.0</version>
    </dependency>
    <dependency>
        <groupId>com.jayway.jsonpath</groupId>
        <artifactId>json-path</artifactId>
        <version>2.4.0</version>
    </dependency>

    <!-- CSV -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-csv</artifactId>
        <version>1.7</version>
    </dependency>

    <!-- Logging -->
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-core</artifactId>
        <version>2.12.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-api</artifactId>
        <version>2.12.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-1.2-api</artifactId>
        <version>2.12.1</version>
    </dependency>
    <dependency>
        <groupId>org.apache.logging.log4j</groupId>
        <artifactId>log4j-slf4j-impl</artifactId>
        <version>2.12.1</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.29</version>
    </dependency>

    <!-- SQL -->
    <dependency>
        <groupId>com.oracle</groupId>
        <artifactId>ojdbc</artifactId>
        <version>${ojdbc.version}</version>
    </dependency>

    <!-- Test -->
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-core</artifactId>
        <version>2.8.9</version>
        <scope>test</scope>
    </dependency>
</dependencies>
我验证了我的参数是否有效,并确保配置在IDE中工作。我甚至尝试使用Configurator.initialize(名称、文件路径)以编程方式加载该文件。我怀疑log4j1不知何故在我的环境中,我想把它清除掉


谢谢你的帮助。

我通过将maven assembly插件版本更新为3.1.1解决了这个问题

       <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <!-- Needed to get the correct log4j -->
            <version>3.1.1</version>
            <executions>
                <execution>
                    <id>distrib</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                    <configuration>
                        <appendAssemblyId>false</appendAssemblyId><!--$NO-MVN-MAN-VER$ -->
                        <outputDirectory>docker/jar/</outputDirectory>
                        <archive>
                            <manifest>
                                <mainClass>my.main.class</mainClass>
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                        <finalName>my-app-${project.version}</finalName>
                    </configuration>
                </execution>
            </executions>
        </plugin>

maven汇编插件
3.1.1
发行版
包裹
单一的
假的
码头工人/
我的主课
带有依赖项的jar
我的应用程序-${project.version}

能否共享项目的maven依赖关系树?您需要log4j-1.2-api jar,但需要删除任何log4j:log4j:transitive依赖项。
       <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <!-- Needed to get the correct log4j -->
            <version>3.1.1</version>
            <executions>
                <execution>
                    <id>distrib</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                    <configuration>
                        <appendAssemblyId>false</appendAssemblyId><!--$NO-MVN-MAN-VER$ -->
                        <outputDirectory>docker/jar/</outputDirectory>
                        <archive>
                            <manifest>
                                <mainClass>my.main.class</mainClass>
                            </manifest>
                        </archive>
                        <descriptorRefs>
                            <descriptorRef>jar-with-dependencies</descriptorRef>
                        </descriptorRefs>
                        <finalName>my-app-${project.version}</finalName>
                    </configuration>
                </execution>
            </executions>
        </plugin>