首页 > 解决方案 > 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.logDocker 内的文件。

标签: javadockerloggingkeycloak

解决方案


容器通常不会将日志写入文件,因为它们使用“临时”文件系统。他们通常将日志写入stdout/stderr,然后 Docker 守护进程管理他们的日志。您可以选择配置Docker 日志记录驱动程序,并且可以在 Docker 守护程序级别管理容器。容器日志转储(如果使用默认日志驱动程序):

docker logs <contaner> > <logfile.txt>

当然,您可以配置应用程序(在您的情况下为 Keycloak)为 logfile 写入日志,然后使用 volume。这种高级 Keycloak 日志配置超出了本题的范围。


推荐阅读