我有以下属性
# 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>
编辑:将所有内容更改为2.X合规性
更新了java代码
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.LogManager;
public class ABC {
private static final Logger logger = LogManager.getLogger(ABC.class);
public static void main(String[] args) {
System.out.println(System.getenv("LOG_DIR"));
logger.debug(System.getenv("LOG_DIR"));
}
}
现在,在控制台上我看到了
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
../../myLogsFolder
它仍然会创建名为"
答案 0 :(得分:0)