/ / So machen Sie die Pfadposition in xml dynamisch - xml, linux, spring, logging, logback

Wie Pfad Pfad dynamisch in Xml - Xml, Linux, Frühling, Protokollierung, Logback

Ich habe ein logback.xml In einem Spring MVC + -Hibernate-Projekt konfiguriert, funktioniert es auf meinem lokalen Computer einwandfrei. die lokale Maschine hat Windows 10 OS Eingerichtet.

Ich möchte den Code der Produktionsmaschine laufen lassen Linux Eingerichtet.

Was willst du wissen? gibt es eine Möglichkeit zu machen LOG_PATH und LOG_ARCHIVE Standorte dynamisch nach OS? Wenn der Code auf einer Produktionsmaschine bereitgestellt wird, muss ich die Pfadpositionen nicht manuell ändern.

Jede Hilfe wird geschätzt. Lassen Sie mich wissen, ob noch etwas benötigt wird. Danke im Voraus. : 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>

Antworten:

1 für die Antwort № 1

Sie können das erstellen logback Datei an einem externen Ort und übergeben Sie es Als Parameter beim Starten der App wie unten gezeigt.

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

Hinzufügen der folgenden Konfiguration zum logback.xml prüft die Datei alle 30 Sekunden auf Änderungen. Wenn eine Änderung erkannt wird, werden die Protokolleinstellungen neu konfiguriert.

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

Wenn Sie etwas ändern möchten, können Sie es direkt in ändern logback.xml