log4j不希望写入控制台和path中带有系统变量的文件

log4j不希望写入控制台和path中带有系统变量的文件,log4j,Log4j,我有个问题。 Log4j不希望写入控制台和path中带有系统变量的文件。仅使用简单路径写入文件。 我的log4j的配置 <appender name="console" class="org.apache.log4j.ConsoleAppender"> <param name="Target" value="System.out" /> <layout class="org.apache.log4j.PatternLayout

我有个问题。 Log4j不希望写入控制台和path中带有系统变量的文件。仅使用简单路径写入文件。 我的log4j的配置

    <appender name="console" class="org.apache.log4j.ConsoleAppender">
        <param name="Target" value="System.out" />
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%-5p: %c - %m%n" />
        </layout>
    </appender>
    <appender name="file" class="org.apache.log4j.DailyRollingFileAppender">
<!--        <param name="file" value="d:/lv-098_JAVA/logs/log.log" /> -->
        <param name="file" value="${LV098_JAVA}/src/main/resources/logs/log.log" />
        <param name="DatePattern" value="'.'yyyy-MM-dd" />
        <layout class="org.apache.log4j.PatternLayout">
        <param name="ConversionPattern" value="%d [%t] %-5p (%F:%L:%M)  %c{1}  %m%n" />
        </layout>

     <!-- Root Logger -->
    <root>
        <priority value="info" />
        <appender-ref ref="file1" />
        <appender-ref ref="console" />
    </root>    
</log4j:configuration>

我找到了问题所在。它在Jboss中,因为Jboss有自己的记录器,不允许写入控制台。您必须更改Jboss记录器的配置。但我不知道为什么它不允许使用系统变量。

您正在声明

appender name="file" class="org.apache.log4j.DailyRollingFileAppender"
然后在根标记中写入

appender-ref ref="file1" 

因为没有这样的
文件1
。由于此原因,log4j不适用于您。

您如何声明系统变量?您是否正在执行java-DLV098_java=?我在Windows系统变量中声明了它。该变量等于“d:\SDevel\lv-098_JAVA”。