java - Docker 中的 Keycloak 日志文件
问题描述
我希望server.log
文件记录成功登录、注销等事件。还有一些附加信息等User-Agent
。为此,我编写了一个 SPI(主要是从JBossLoggingEventListenerProvider.java
&复制代码JBossLoggingEventListenerProviderFactory.java
)并成功部署了 SPI,它出现在Events -> Config
选项卡中,甚至生成了我想要的登录控制台。
现在,当我转到位置:/opt/jboss/keycloak/standalone/log/server.log
在 Docker 内部并打开它时,我的相关日志不存在。我尝试了不同的选项,例如:
https://lists.jboss.org/pipermail/keycloak-user/2017-February/009498.html http://www.programmersought.com/article/30541589587/
但仍然没有成功。请让我知道如何启用我的事件侦听器将日志写入server.log
Docker 内的文件。
解决方案
容器通常不会将日志写入文件,因为它们使用“临时”文件系统。他们通常将日志写入stdout/stderr
,然后 Docker 守护进程管理他们的日志。您可以选择配置Docker 日志记录驱动程序,并且可以在 Docker 守护程序级别管理容器。容器日志转储(如果使用默认日志驱动程序):
docker logs <contaner> > <logfile.txt>
当然,您可以配置应用程序(在您的情况下为 Keycloak)为 logfile 写入日志,然后使用 volume。这种高级 Keycloak 日志配置超出了本题的范围。
推荐阅读
- visual-studio-code - 当我应该收到错误消息时,为什么终端会崩溃?
- javascript - JavaScript:从一种嵌套 JSON 格式转换为另一种嵌套 JSON 格式
- asp.net - 如何在 Kestrel 进程中每天运行异步任务?
- javascript - 尝试将行记录为唯一或按 ID 列复制
- r - 如何获取每个几何线的标签
- python - 在 python 中创建一个带有 .txt 文件的字典
- r - 计算一致性率,按矩阵中的元素匹配向量
- redis - redis服务器重启/缩放后如何重新连接redis客户端
- sql - Impala SQL 查询
- html - 来自 ASP.NET 的 HTML 编辑器,具有文件上传和插入功能