Logback 不会相对于为 MacOs 编译的 jar 文件写入
Logback does not write relative to jar file in which it has been compiled for MacOs
问题是 logback 在 windows 中的行为与在 MacO 中的行为不同。
以下设置在 windows 上正常工作,并创建相对于应用程序所在位置的日志文件 运行。
然而,在 MacOs 上,它似乎总是写入相对于主文件夹的日志文件,导致路径类似于 user/myUsername/log/logExport.txt。
然而,这应该是 user/myUserName/path/to/app/log/logExport.txt.
这是一个问题,因为此应用程序将 运行 在包括 MacO 在内的许多不同计算机上独立运行。
该应用程序始终使用 bash 或类似的脚本文件启动。
logback.xml 包含在 jar 文件中,因此在构建应用程序后无法更改。(因此为什么它是相对路径)
为了方便客户,我想避免让他们设置属性文件或类似文件。
我有什么方法可以将 logback 指向 mac 上的正确位置?
这是一个 Maven Java 项目。
这在 windows machines 上 100% 正常工作。
<appender name="ROLLING"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>log/logExport.txt</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>log/archive/logExport.%d{yyyy-MM-dd}.txt</fileNamePattern>
<maxHistory>50</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
This should however be user/myUserName/path/to/app/log/logExport.txt.
在这种情况下,应用程序需要从 user/myUserName/path/to/app
开始。这是您配置中的相对路径,将相对于 current directory。最好的办法是在快捷方式中将该目录指定为起始目录,或者在启动脚本中将其 cd
指定为起始目录。
问题是 logback 在 windows 中的行为与在 MacO 中的行为不同。 以下设置在 windows 上正常工作,并创建相对于应用程序所在位置的日志文件 运行。
然而,在 MacOs 上,它似乎总是写入相对于主文件夹的日志文件,导致路径类似于 user/myUsername/log/logExport.txt。 然而,这应该是 user/myUserName/path/to/app/log/logExport.txt.
这是一个问题,因为此应用程序将 运行 在包括 MacO 在内的许多不同计算机上独立运行。 该应用程序始终使用 bash 或类似的脚本文件启动。
logback.xml 包含在 jar 文件中,因此在构建应用程序后无法更改。(因此为什么它是相对路径) 为了方便客户,我想避免让他们设置属性文件或类似文件。 我有什么方法可以将 logback 指向 mac 上的正确位置? 这是一个 Maven Java 项目。
这在 windows machines 上 100% 正常工作。
<appender name="ROLLING"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>log/logExport.txt</file>
<rollingPolicy
class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- daily rollover -->
<fileNamePattern>log/archive/logExport.%d{yyyy-MM-dd}.txt</fileNamePattern>
<maxHistory>50</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
<encoder>
<pattern>%d{HH:mm:ss.SSS} %-5level %logger{35} - %msg%n</pattern>
</encoder>
</appender>
This should however be user/myUserName/path/to/app/log/logExport.txt.
在这种情况下,应用程序需要从 user/myUserName/path/to/app
开始。这是您配置中的相对路径,将相对于 current directory。最好的办法是在快捷方式中将该目录指定为起始目录,或者在启动脚本中将其 cd
指定为起始目录。