【问题标题】:How to make path location dynamic in xml如何在xml中使路径位置动态化
【发布时间】:2016-12-21 08:18:43
【问题描述】:

我在 spring MVC + hibernate 项目中配置了一个 logback.xml,它在我的本地机器上运行良好。本地计算机已安装 Windows 10 操作系统

我希望运行安装了Linux的生产机器的代码。

想知道的是,有没有办法根据操作系统使LOG_PATHLOG_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>

【问题讨论】:

    标签: xml linux spring logging logback


    【解决方案1】:

    您可以在外部位置创建logback 文件并传递它 作为启动应用程序时的参数,如下所示。

    java -Dlogback.configurationFile=path/logback.xml MyApp
    

    将以下配置添加到logback.xml 将每 30 秒扫描一次文件以查找任何更改。如果检测到更改,它将重新配置日志设置。

    <configuration scan="true" scanPeriod="30 seconds" > 
      ...
    </configuration>
    

    现在如果你想改变任何东西,你可以直接在logback.xml中改变它

    【讨论】:

    • 我希望将 '' 中给出的 'value' 动态化
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-17
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 2020-10-26
    • 2016-09-08
    • 2023-01-04
    相关资源
    最近更新 更多