[英]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.