gpt4 book ai didi

java - 我可以在 SLF4J Simple 的 props 文件中指定环境变量吗?

转载 作者:行者123 更新时间:2023-11-30 11:27:33 24 4
gpt4 key购买 nike

根据 this link可以通过将 simplelogger.properties 文件放在运行时类路径中来配置 SLF4J Simple。

simplelogger.properties 示例:

org.slf4j.simpleLogger.logFile=/home/myuser/.myapp/logs/myapp.log
org.slf4j.simpleLogger.defaultLogLevel=INFO
org.slf4j.simpleLogger.levelInBrackets=false

但是,如果我希望我的应用程序定义自己的环境变量,比如 MYAPP_HOME,并将其设置为 /home/myuser/.myapp/logs 的值,该怎么办>。然后我如何从 simplelogger.properties 中引用 MYAPP_HOME 变量?这可能吗?

例如,我可以这样做吗:

org.slf4j.simpleLogger.logFile=${MYAPP_HOME}/logs/myapp.log
org.slf4j.simpleLogger.defaultLogLevel=INFO
org.slf4j.simpleLogger.levelInBrackets=false

注意:以上不起作用并导致以下异常:

Could not open [${MYAPP_HOME}/logs/myapp.log]. Defaulting to System.err
Reported exception:
java.io.FileNotFoundException: ${MYAPP_HOME}/logs/myapp.log (No such file or directory)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:209)
at java.io.FileOutputStream.<init>(FileOutputStream.java:99)
at org.slf4j.impl.SimpleLogger.computeTargetStream(SimpleLogger.java:224)
at org.slf4j.impl.SimpleLogger.init(SimpleLogger.java:205)
at org.slf4j.impl.SimpleLogger.<init>(SimpleLogger.java:268)
at org.slf4j.impl.SimpleLoggerFactory.getLogger(SimpleLoggerFactory.java:57)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:270)
at org.slf4j.LoggerFactory.getLogger(LoggerFactory.java:281)
... rest of stack trace omitted for brevity

提前致谢!

最佳答案

由于 simplelogger.properties 被读取为普通 Java Properties SimpleLogger 文件,对环境变量的引用未在其中解析。

但是,您可以在名为 org.slf4j.simpleLogger.logFile 的环境变量中提供路径,它也由 SimpleLogger 读取,并优先于通过 配置>simplelogger.properties.

关于java - 我可以在 SLF4J Simple 的 props 文件中指定环境变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19278703/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com