如何在日志中以可移植的方式将日志文件放在用户主目录中?
2022-09-03 04:23:33
我想将日志文件放入用户主目录。
如何以便携式方式做到这一点,即在Windows,Linux和Mac上工作?
我想将日志文件放入用户主目录。
如何以便携式方式做到这一点,即在Windows,Linux和Mac上工作?
根据 Logback 文档,您应该使用 ,这是 JVM 中直接来自操作系统的环境变量(因此它是可移植的):${user.home}
<appender name="FILE" class="ch.qos.logback.core.FileAppender">
<file>${user.home}/logback.log</file>
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern>
</encoder>
</appender>
日志记录设置实际上是系统的配置组件。最好的办法是分离(并加载)每个系统的配置。一个好的方法是使用类似Apache Commons Configuration的东西,这允许遍历一组属性,这些属性将指示在哪里可以找到一次性的logback配置。
我们使用类似“优先级”的方案来标识 logback 配置文件名。使用Apache Commons配置,我们指定如下方案:
<configuration config-name="master-config">
<!-- start here, properties encountered in the first file would be ignored in the last file -->
<properties fileName="/opt/config/log.properties" optional="true"/>
<properties fileName="${sys:user.home}/config/product/log.properties" optional="true"/>
<properties fileName="com/company/product/config/log.properties"/>
在我的本地Windows开发框(${sys:user.home}/config/product/log.properties)上,文件将看起来像
logbackConfigLocation=C:/Users/dan/config/product/logback.xml
然后,每个系统/用户可以根据需要配置/设置日志记录。在 servlet 上下文中,您可以加载和初始化日志。