user666:
J'ai une application Java chaussure de course élastique à l'intérieur d'un récipient de menu fixe. Je configuré Logback dans l'application. Où je peux accéder aux journaux générés? Le chemin est configuré:
<property name="LOG_PATH" value="logs"/>
Je vérifie actuellement les journaux en utilisant: journaux docker ContainerName --follow Mais cette commande retourne les journaux en cours depuis la dernière fois que l'application a été lancée. Comment puis-je vérifier les journaux ou les rouler archivés.
Y at-il un moyen de créer un volume pour les journaux de Logback?
user666:
Je me sers de la façon suivante: en logback.xml:
<?xml version="1.0" encoding="UTF-8"?>
<property name="LOG_PATH" value="logs"/>
<timestamp key="currentTimestamp" datePattern="yyyy-MM-dd'_'HH"/>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
%d{dd-MM-yyyy HH:mm:ss.SSS} %magenta([%thread]) %highlight(%-5level) %logger.%M\(%line\) - %msg%n
</pattern>
</encoder>
</appender>
<appender name="SAVE-TO-FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/appName.log</file>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<Pattern>
%d{dd-MM-yyyy HH:mm:ss.SSS} [%thread] %-5level %logger{36}.%M - %msg%n
</Pattern>
</encoder>
<rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<!-- the rollover occurs when the active log file reaches the maximum file size before the end of the time period. -->
<!-- The rollover period is inferred from the smallest date unit value of fileNamePattern -->
<!-- each file should be at most [maxFileSize], keep [maxHistory] days worth of history, but at most [totalSizeCap] -->
<maxFileSize>100MB</maxFileSize>
<fileNamePattern>
${LOG_PATH}/archived/appName.%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<maxHistory>30</maxHistory>
<totalSizeCap>1GB</totalSizeCap>
</rollingPolicy>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT"/>
<appender-ref ref="SAVE-TO-FILE"/>
</root>
Dans l'essai docker:
docker run --network name-network --restart=unless-stopped --name name-java-container
--hostname valueOfHostname -d -p 8080:8080 \
-v /data/nameFolderForLogs:/logs \
imageName