Java Log4J:无法使用环境变量创建文件

Java Log4J:无法使用环境变量创建文件,java,log4j,rollingfileappender,Java,Log4j,Rollingfileappender,我有以下财产 # Set the name of the file log4j.appender.FILE.File="${env:LOG_DIR}/log.out" 我可以把环境变量看作 System.out.println(System.getenv("LOG_DIR")); 给我 ../../myLogFolder 但是当我运行程序时,它会创建一个名为“的文件夹,并在其中创建一个log.out文件。为什么log4j.properties不能获取环境变量的值 以下是我的maven依赖项

我有以下财产

# Set the name of the file
log4j.appender.FILE.File="${env:LOG_DIR}/log.out"
我可以把环境变量看作

System.out.println(System.getenv("LOG_DIR"));
给我

../../myLogFolder
但是当我运行程序时,它会创建一个名为
的文件夹,并在其中创建一个
log.out
文件。为什么log4j.properties不能获取环境变量的值

以下是我的maven依赖项

<!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>2.7</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-api -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>2.7</version>
        </dependency>
现在,在控制台上我看到了

ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
../../myLogsFolder
它仍然会创建一个名为
的文件夹,作为答案添加:

您应该删除log4j 1.2.17并添加log4j 2.X库:


此语法仅记录在log4j 2.X中,因此请确保您使用的是正确的版本。哦,好的,我有
1.2.17
,我应该如何修改?您能显示完整的配置文件吗?另外,请注意,log4j2将在类路径中查找名为log4j2.xml的文件(或属性、json或yml)。请注意名称中的2。默认情况下,它将忽略log4j.xml和log4j.properties。我担心这对网站(如何迁移log4j)使用log4j.appender.FILE=“${sys:LOG_DIR}/LOG.out”没有帮助。顺便说一句,你可以读一些为什么系统?这是一个环境变量。我把所有的东西都改成了2.X版,但仍然得到了相同的结果
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
../../myLogsFolder