Tomcat、Docker、日志记录和 STDOUT?

2023-11-25

我在docker中运行tomcat,但看不到日志。它们被写入到 tomcat/logs 下的各种日志文件中,但是当 tomcat 在 docker 容器中运行时我看不到它们。

这是我的 Dockerfile

FROM tomcat:7-jre8
COPY target/MYAPP.war /usr/local/tomcat/webapps/MYAPP.war
RUN ["/usr/local/tomcat/bin/catalina.sh", "start"]

这就是我构建图像并从中启动容器的方式:

docker build -t MYAPP .
docker run -it --rm -p 8080:8080 --name MYAPP MYAPP

我的应用程序在 tomcat 部署 MYAPP.war 后创建日志文件:/var/log/MYAPP.log

我应该如何修改 Dockerfile 以及应该使用哪个命令来运行它(“docker run ...”),以便在使用 oneliner“docker run -it --rm -p 8080:8080 --name”启动容器 MYAPP 后立即使用MYAPP MYAPP” /var/log/MYAPP.log 的内容将打印到标准输出?

我尝试将以下命令添加到 Dockerfile 但没有帮助。

CMD tail -f /usr/local/MYAPP.log

需要执行以下操作将所有日志定向到标准输出:

  1. 类似于给出的答案如何阻止应用程序日志登录 Tomcat 中的 catalina.out,您可以将 CATALINA_OUT 环境变量值传递为/dev/stdout。这将确保所有 tomcat 日志都发送到 stdout。
  2. 在catalina基地的logging.properties中,保留java.util.logging.ConsoleHandler并删除其他处理程序。
  3. 更改应用程序中的日志记录配置(例如,如果您使用 log4j2,则更改 log4j2.xml 文件)以将日志发送到 stdout。在 log4j2 中,您可以使用控制台附加器.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tomcat、Docker、日志记录和 STDOUT? 的相关文章

随机推荐

  • 获取当前正在运行的活动的实例?

    我想做的是将运动事件分派给当前正在运行的活动 我从这段代码中获取了当前活动的 ComponentName ActivityManager am ActivityManager getSystemService ACTIVITY SERVIC
  • 排除类型的重载的类型注释(某些类型与其他类型)

    我正在尝试使用 overload传达调用函数的不同方式 但是通过简单的代码可以轻松传达什么else声明在类型注释中是不可能的 如果没有 else MyPy 正确地 会抱怨重载版本不匹配 例如 请参见下面的代码片段 error Overloa
  • 错误 X3000:着色器文件中存在非法字符

    我粘贴了一行着色器代码 现在我的项目无法工作 我删除了受污染的代码行 我已经按照 VS Notepad 和 Notepad 的建议从头开始多次重写着色器Unity 论坛 我在 Notepad 中使用了十六进制编辑器视图来排除前两个字节不是0
  • CA2000 将对象引用传递给 C# 中的基本构造函数

    当我通过 Visual Studio 的代码分析实用程序运行一些代码时 我收到一条警告 我不确定如何解决 也许这里有人遇到过类似的问题 解决了它 并愿意分享他们的见解 我正在编写一个在 DataGridView 控件中使用的自定义绘制单元格
  • 为什么VS中的Debug模式比Release慢?

    我已经用谷歌搜索过这个问题 通常答案相当复杂 而且我并不真正理解所有的行话 有没有简单的解释为什么调试模式这么慢 为什么不总是在发布版本中运行呢 调试模式已关闭所有优化 以确保连接的调试器按预期工作 一个版本将会开启很多优化 比这更简单的我
  • 清除 Java 缓存

    我想知道如何使用 Java 代码或 CMD 行代码清除 Java 缓存 这应该在 Windows 7 及以上版本的 Microsoft Windows 计算机上完成 这应该在多台计算机上完成 因此文件路径会有所不同 该应用程序使用 Java
  • 查询GAE数据存储时如何修复索引错误?

    当我尝试对按日期排序的数据存储运行查询时 出现以下错误 NeedIndexError no matching index found The suggested index for this query is kind Message pr
  • 根据 bin 大小将列表分为多个列表

    我有一个包含超过 100 000 个值的列表 我需要根据特定的 bin 宽度 例如 0 1 将列表划分为多个较小的列表 谁能帮我写一个Python程序来做到这一点 我的清单看起来像这样 0 234 0 04325 0 43134 0 315
  • .R 脚本文件位于 PC 上的哪里?

    我想找到用于 R 中计算的脚本 R 文件的位置 我知道通过输入对象函数 我将获得正在运行的代码 然后我可以复制 编辑并将其另存为新的脚本文件并使用它 要求查找 foo R 文件的原因是 好奇心 了解数值计算中使用的算法是什么 更直接的是 函
  • C++ Visual Studio 编译错误

    我收到以下编译错误 致命错误 C1189 error 错误 使用 C 运行时库内部头文件 我对此完全不知道 谁能解释一下吗 完整的错误 C Program Files Microsoft Visual Studio 8 VC ce incl
  • 使用一次性使用令牌将 Auth0 实现到 chrome 扩展中

    我正在制作一个 chrome 扩展程序 我想为我的 chrome 扩展程序创建一个安全方法 以阻止它在没有我参与的情况下被共享 我有一个想法在某个地方生成一个令牌 通常是一些后端 也许是网站的服务器 该服务器获取我用 worpress 构建
  • 跨不同类加载器覆盖默认访问器方法会破坏多态性

    我在尝试使用以下方法重写方法时遇到了奇怪的行为默认访问器 ex void run 根据Java规范 如果类属于同一个包 则类可以使用或覆盖基类的默认成员 当所有类从同一个类加载器加载时 一切正常 但是如果我尝试从中加载子类separate类
  • Windows 上缺少“magic”库的文件

    我需要获取 Windows 上某些文件的 mime 类型 所以我已经安装了python magic 在 32 位 python 2 7 3 上 这取决于unixmagic图书馆 作者指示获取regex2 dll zlib1 dll and
  • 如何获取 xsd 验证失败的无效 xml 文件的元素

    我目前正在使用 XSD 来验证我的 xml 这部分工作正常 我的问题是我想获取无效的标签 值的元素 InputSource is new InputSource is setCharacterStream new StringReader
  • Golang net.Conn 并行写入

    我有多个 Goroutine 共享一个 net Conn 对象 他们可以同时发出 Write 调用吗 我主要关心的是已部分完成的 Write 调用 假设我打算写 100 个字节 但只发送了 30 个字节 所以我需要再发送 70 个字节 为此
  • JPA条件查询中的条件where子句

    我面临 JPA 标准查询的问题 如何使用 if else 在条件查询中添加多个 where 子句 我的要求是 CriteriaBuilder builder getEm getCriteriaBuilder CriteriaQuery qu
  • 如何在 BottomSheetDialogFragment 内的 ViewPager2 上启用拖动?

    有一个BottomSheetDialogFragment并且在片段布局和打开方面工作良好的垂直拖动状态STATE EXPANDED模式 有一个recyclerview在它里面并垂直拖动可以在底部工作表上工作 但它不起作用recyclervi
  • 检查日期是否在范围内

    我正在尝试检查 mm dd yyyy 格式的日期是否大于今天且小于从今天起 6 个月后的日期 这是我的代码 var isLinkExpiryDateWithinRange function value var monthfield valu
  • WPF 消息框窗口样式

    如何将默认的Windows样式应用到标准MessageBox in WPF 例如 当我执行下一个代码时 MessageBox Show Hello Stack Overflow Test MessageBoxButton OKCancel
  • Tomcat、Docker、日志记录和 STDOUT?

    我在docker中运行tomcat 但看不到日志 它们被写入到 tomcat logs 下的各种日志文件中 但是当 tomcat 在 docker 容器中运行时我看不到它们 这是我的 Dockerfile FROM tomcat 7 jre