봄 부팅 - 도커 로그

user666 :

나는 고정 표시기 용기 내부의 스프링 부팅 자바 응용 프로그램을 실행합니다. 나는 응용 프로그램에서 logback 구성. 어디에서 생성 된 로그를 액세스 할 수 있습니까? 구성된 경로는 다음과 같습니다

<property name="LOG_PATH" value="logs"/>

내가 현재 사용 로그를 확인하고 있습니다 : 고정 표시기 로그 컨테이너 이름 --follow을하지만이 명령은 응용 프로그램이 시작된 마지막에서 현재의 로그를 반환합니다. 어떻게 롤링 로그 또는 보관 된 것을 확인할 수 있습니다.

logback 로그에 대한 볼륨을 생성 할 수있는 방법이 있습니까?

user666 :

나는 다음과 같은 방법을 사용하고 있습니다 : 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>

고정 표시기 실행에서 :

docker run --network name-network --restart=unless-stopped --name name-java-container 
--hostname valueOfHostname -d -p 8080:8080 \
-v /data/nameFolderForLogs:/logs \
imageName

추천

출처http://43.154.161.224:23101/article/api/json?id=187220&siteId=1