如何归纳两个Windows / Linux OS的登录文件路径?

问题描述 投票:0回答:1

我有一个Java应用程序。我的开发环境是Windows操作系统,生产环境是linux。该应用需要在操作系统中读取/写入一些文件,其中包括-日志文件(我正在使用logback lib)。在Windows开发环境中,我将日志路径配置为绝对位置: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文件的上下文中创建文件,而是在某些绝对路径中创建文件。怎么做?

java linux windows logback filepath
1个回答
0
投票

为了使Web应用程序具有可移植性,并且无论操作系统如何,都应生成日志文件。您必须使用user.home环境变量属性。我在下面提供了在Windows和Linux上均可使用的logback代码段。

<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>
© www.soinside.com 2019 - 2024. All rights reserved.