【问题标题】:Can I specify environment variables in SLF4J Simple's props file?我可以在 SLF4J Simple 的 props 文件中指定环境变量吗?
【发布时间】:2013-10-09 17:23:44
【问题描述】:

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

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

提前致谢!

【问题讨论】:

    标签: java logging configuration environment-variables slf4j


    【解决方案1】:

    由于simplelogger.propertiesSimpleLogger 读取为普通的Java Properties 文件,因此不会在其中解析对环境变量的引用。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      • 2012-01-22
      • 1970-01-01
      相关资源
      最近更新 更多