Java 在使用Spring时,如何让log4j使用log4j.xml文件而不写入控制台?

Java 在使用Spring时,如何让log4j使用log4j.xml文件而不写入控制台?,java,spring,logging,log4j,Java,Spring,Logging,Log4j,我在帮一个朋友做一个项目。他使用春天;我不是。我给了他一个log4j.xml文件,我用它来记录logs/子目录中的文件。他尝试了log4j.xml,但他的应用程序忽略了它(对它的存在或不存在没有反应),并将输出发送到控制台。Spring似乎正在自动配置log4j来执行此操作。我们还尝试了-Ddebug.log4j=true,以了解在涉及Spring时有关log4j初始化的更多信息,但该参数没有任何效果。现在在我们的项目中 我们使用下面的xml文件 我希望这会有帮助 默认情况下,log

我在帮一个朋友做一个项目。他使用春天;我不是。我给了他一个
log4j.xml
文件,我用它来记录
logs/
子目录中的文件。他尝试了
log4j.xml
,但他的应用程序忽略了它(对它的存在或不存在没有反应),并将输出发送到控制台。Spring似乎正在自动配置
log4j
来执行此操作。我们还尝试了
-Ddebug.log4j=true
,以了解在涉及Spring时有关
log4j
初始化的更多信息,但该参数没有任何效果。

现在在我们的项目中

我们使用下面的xml文件



我希望这会有帮助

默认情况下,log4j不会对其配置进行任何假设,它肯定需要配置文件或编程配置


它在类路径中扫描
log4j.properties
log4j.xml
。如果希望使用不同的路径和名称,则需要传递一个系统变量,如
-Dlog4j.configuration=relative_path_to_file.xml

如果xml文件位于类路径上,它应该选择。确保它在类路径上。@Rp-你是说真正的类路径(JAR所在的位置)吗?还是应该在其他资源路径中?谢谢。是的,Log4j扫描类路径以查找Log4j.properties或Log4j.xml。如果您喜欢任何其他位置或文件名,则需要进行一些额外的配置。我将尝试查找一个参考。如果您喜欢不同的路径或名称,则需要使用
-Dlog4j.configuration=relative_path_to_file.xml
@Rp-您的评论已证明很有用。你能给我一个答案让我接受吗?谢谢你@Sanket。这不是我想要的答案,但我很感谢你的帮助。如果“扫描”同时找到log4j.properties和log4j.xml文件会怎么样?@MinnieShi如果同时找到这两个文件,它更喜欢xml而不是properties。我找不到引用,但这是我在以前的一个项目中将它们都放在我的类路径上时观察到的。
<appender name="EvolutionWebASYNC" class="org.apache.log4j.AsyncAppender">
    <appender-ref ref="logFileOut" />
</appender>

<appender name="logFileOut" class="org.apache.log4j.RollingFileAppender">
    <param name="File" value="C:/home/wasadmin/applogs/myproject/myproject.log" />
    <param name="Append" value="true" />
    <param name="Threshold" value="ALL" />
    <param name="MaxFileSize" value="10MB" />
    <param name="MaxBackupIndex" value="5" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern"
            value="%d %-5p - [TXID: %X{TXID}] [UID: %X{UID}] [ORGOID: %X{ORGOID}] [UA_ORGOID: %X{UA_ORGOID}] - %m%n" />
    </layout>
</appender>

<appender name="console" class="org.apache.log4j.ConsoleAppender">
    <param name="Target" value="System.out" />
    <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern"
            value="%d %-5p - [TXID: %X{TXID}] [UID: %X{UID}] [ORGOID: %X{ORGOID}] [UA_ORGOID: %X{UA_ORGOID}] - %m%n" />
    </layout>
</appender>

<root>
    <level value="DEBUG" />
    <appender-ref ref="EvolutionWebASYNC" /> 
</root>