我在spring MVC + hibernate项目中配置了 logback.xml ,它在我的本地计算机上运行良好。本地计算机已安装 Windows 10 OS 。
我希望运行已安装 Linux 的生产机器代码。
想知道什么,是否有办法根据操作系统使LOG_PATH
和LOG_ARCHIVE
位置动态化?这样当代码部署在生产机器上时不必手动更改路径位置。
感谢任何帮助,如果需要其他任何内容,请与我们联系。先感谢您。 :d
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true" scan="true" scanPeriod="30 seconds">
<property name="LOG_PATH" value="D:/coinLogs" />
<property name="LOG_ARCHIVE" value="${LOG_PATH}/archive" />
<appender name="Console-Appender" class="ch.qos.logback.core.ConsoleAppender">
<layout>
<pattern>[%d{yyyy-MM-dd HH:mm:ss}] - [%X{requestId}] - %p %c -- %m%n</pattern>
</layout>
</appender>
<appender name="File-Appender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/logfile.log</file>
<encoder>
<pattern>[%d{yyyy-MM-dd HH:mm:ss}] - [%X{requestId}] - %p %c -- %m%n
</pattern>
<outputPatternAsHeader>true</outputPatternAsHeader>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- rollover daily -->
<fileNamePattern>${LOG_ARCHIVE}/rollingfile.log.%d{yyyy-MM-dd}.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>10MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
</rollingPolicy>
</appender>
<logger name="coinPay.logbackxml" level="info" additivity="false">
<appender-ref ref="Console-Appender" />
<appender-ref ref="File-Appender" />
</logger>
<!-- To remove extra hibernate logs -->
<logger name="org.hibernate">
<level value="info" />
</logger>
<root>
<appender-ref ref="Console-Appender" />
<appender-ref ref="File-Appender" />
</root>
</configuration>
答案 0 :(得分:1)
您可以在外部位置创建logback
文件并将其传递
作为启动应用程序的参数,如下所示。
java -Dlogback.configurationFile=path/logback.xml MyApp
将以下配置添加到logback.xml
将每隔30秒扫描一次文件以进行任何更改。如果检测到更改,它将重新配置日志设置。
<configuration scan="true" scanPeriod="30 seconds" >
...
</configuration>
现在,如果您想要更改任何内容,可以在logback.xml