簡體   English   中英

如何將 logback 文件路徑概括為 windows/linux 操作系統?

[英]How to generalize logback files paths to both windows/linux OS?

我有一個 java 應用程序。 我的開發環境是 Windows 操作系統,我的生產操作系統是 linux。 該應用程序需要讀取/寫入操作系統中的一些文件,其中包括日志文件(我正在使用 logback lib)。 在我的 windows 開發環境中,我將日志路徑配置為絕對 position:C://logger/my-app.log

以下是相關的 logback.xml 配置文件代碼:

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>C://logger/my-app.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>C://logger/my-app-%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder>
        <charset>UTF-8</charset>
        <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>

但是,正如所提到的,我的產品環境是 linux 操作系統。 我也想在 linux 機器中創建絕對路徑的文件,使用單個配置 xml 文件。 我不希望在已部署的 jar 文件的上下文中創建該文件,而是在某個絕對路徑中創建該文件。 怎么做到呢?

為了使 web 應用程序具有可移植性,並且無論任何操作系統都應生成日志文件。 您必須使用user.home環境變量屬性。 我在 logback 片段下方提供了該片段,它適用於 Windows 和 Linux。

<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
    <file>${user.home}/logs/my-app.log</file>
    <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
        <fileNamePattern>C://logger/my-app-%d{yyyy-MM-dd}.log</fileNamePattern>
        <maxHistory>30</maxHistory>
    </rollingPolicy>
    <encoder>
        <charset>UTF-8</charset>
        <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
</appender>

暫無
暫無

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

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