docker exec java app background附加日志

时间:2016-11-08 10:04:18

标签: java spring logging docker

对于在docker容器中运行的Java应用程序,我应该在哪里输出我的日志,以便docker logs -f可以在运行一段时间之后读取java应用程序的日志输出?

我使用类似以下内容的

执行活动docker容器内的java应用程序
docker exec -d container-name java -jar /path-to-jar/java-app-1.0-SNAPSHOT.jar

到目前为止它运行我的Spring Boot java应用程序非常好。

以下任何一种方法都可以使用吗?

docker exec -d container-name java -jar /path-to-jar/java-app-1.0-SNAPSHOT.jar > /var/log/docker-id.log

或者将java日志路径设置设置为特定目的地?

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <include resource="org/springframework/boot/logging/logback/defaults.xml" />
    <property name="LOG_FILE" value="${LOG_FILE:-${LOG_PATH:-${LOG_TEMP:-${java.io.tmpdir:-/tmp}}/}spring.log}"/>
    <include resource="org/springframework/boot/logging/logback/file-appender.xml" />
    <root level="INFO">
        <appender-ref ref="FILE" />
    </root>
</configuration>

1 个答案:

答案 0 :(得分:1)

要在docker中运行应用程序并能够查看日志,然后像下面这样运行它将起作用。

<强> Dockerfile

FROM base-image
COPY app.jar /opt/app.jar
CMD ["java","-jar","/opt/rate-upload-tool.jar"]

构建Docker镜像

docker build -t java-app-image-name .

在后台运行泊坞窗图片

docker run --name app-container-name -d java-app-image-name

在此之后,您将能够查看泊坞窗的日志

docker logs -f app-container-name