首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spring boot - Docker日志

Spring boot - Docker日志
EN

Stack Overflow用户
提问于 2018-11-09 22:39:07
回答 2查看 16.1K关注 0票数 5

我有一个在docker容器中运行的spring boot java应用程序。我在应用程序中配置了logback。我可以在哪里访问生成的日志?配置的路径为:

代码语言:javascript
复制
<property name="LOG_PATH" value="logs"/>

我目前正在使用以下命令检查日志: docker logs containerName --follow,但此命令返回应用程序上次启动时的当前日志。如何查看滚动日志或归档日志。

有没有办法为logback日志创建卷?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-17 16:17:59

我使用以下方式:在logback.xml中:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>

代码语言:javascript
复制
<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>

在码头运行中:

代码语言:javascript
复制
docker run --network name-network --restart=unless-stopped --name name-java-container 
--hostname valueOfHostname -d -p 8080:8080 \
-v /data/nameFolderForLogs:/logs \
imageName
票数 6
EN

Stack Overflow用户

发布于 2018-11-09 22:56:53

尝试使用以下命令实现文件附加器

代码语言:javascript
复制
<configuration>
    ...
    <property name="LOG_PATH" value=/var/app>
    ...
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
        <file>${LOG_PATH}/spring.log</file>
        ...   
    </appender>
</configuration>

在此之后,您可以运行下一个命令:

代码语言:javascript
复制
docker exec -it containerName cat /var/app/spring.log > $HOME/spring.log

或使用(docker run ... -v "$HOME/app:/var/app")创建卷

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53227826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档