簡體   English   中英

使用配置文件中的web.xml中定義的環境變量

[英]Use environment variable defined in web.xml in config files

我已經在戰爭包中的web.xml中定義了一個變量,例如:

<env-entry>
        <env-entry-name>LOG_DIR</env-entry-name>
        <env-entry-type>java.lang.String</env-entry-type>
        <env-entry-value>${CATALINA_HOME}</env-entry-value>
</env-entry>

另外,我在類路徑中有logback.xml文件。 我想在那里使用此變量:

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <file>${LOG_DIR}/logs/WebStore.log</file>
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <!-- daily rollover -->
            <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern>
            <!-- keep 30 days' worth of history -->
            <maxHistory>30</maxHistory>
        </rollingPolicy>

        <encoder>
            <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%logger{36}] [%thread] %msg%n</pattern>
        </encoder>
    </appender>

當我啟動tomcat實例時,我在tomcat bin目錄中獲得LOG_DIR_IS_UNDEFINED文件夾。

我知道我可以創建一個屬性文件並將其導入到logback.xml中,但是我不想再創建一個文件,並且我對以這種方式使用變量很感興趣。 可能嗎?

環境條目在配置文件中可見,但是通常程序員必須專門設置環境范圍。 例如$${env:USER}可以在Log4j中使用。 參見此處: http : //logging.apache.org/log4j/2.x/manual/lookups.html

另請參見以下答案: 如何在log4j.properties中使用系統環境變量?

在logback中可能存在類似的機制,但是我無法通過快速搜索找到任何東西。 如果所有人都發現了,歡迎您編輯此答案並添加它。 在特定情況下,您可以直接在logback.xml使用${CATALINA_HOME}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM