美文网首页
tomcat 容器中 springboot logback.xm

tomcat 容器中 springboot logback.xm

作者: 运维小兵_加油 | 来源:发表于2018-02-03 11:50 被阅读0次

    我在测试把 springboot 的程序部署到 tomcat 容器中发现springboot 的日志文件 catalina.out 没有生成,docker logs 也看不到任何相关日志,日志信息不知道去哪里了 ...

    分析过程

    1. 更改logback.xml console 为 file, 重新测试后发现 catalina.out 文件可以生成,springboot 相关日志也是存在的
       <root level="DEBUG">
          <appender-ref ref="FILE" />
          <!-- <appender-ref ref="console" /> -->
      </root>
      
    2. 确认 jdk 版本 (1.8)
    3. 查看 image dockerfile, 我们自定义的 image 里主进程是 run.sh (里面包含了 download war, unpack, start tomcat 等步骤),官网的 tomcat 镜像主进程是 catalina
    4. 下载了官网的 tomcat 并部署 springboot 程序,docker logs 可以看到 springboot 日志

    总结

    我们自定义的镜像和官网的镜像区别是主进程(官网的是 catalina.sh, 我们的是 run.sh),运行官网的 tomcat 容器 pid 为 1 的进程是 tomcat, 我们自定义镜像容器 pid 为 1 的是 run.sh, tomcat 是 run.sh 的子进程。

    查询相关 docker 文档确认: 只有主进程 (pid 为1)的相关进程日志会输出到 stdout (docker logs 可以查询), 所以我们这种情况需要更改 logback.xml 的 console 为 file, 或者更改镜像把 tomcat 的启动脚本直接作为主进程

    相关文章

      网友评论

          本文标题:tomcat 容器中 springboot logback.xm

          本文链接:https://www.haomeiwen.com/subject/gbquzxtx.html