我是log4j2和 flex 堆栈的新手。
我有一个filebeat docker容器,该容器无法完全按照我的要求运行,现在我想看看日志。但是当我执行docker-compose logs
时,我得到了很多调试消息和json对象。有多少是不可读的。
我如何创建log4j2属性设置来创建一些滚动日志文件。也许将旧日志放入基于月度的文件夹中?并将该log4j2.properties
文件放在哪里?
最佳答案
因为您正在运行docker-compose logs
,它会生成大量日志,这将获取docker compose文件中所有容器的日志。
您想要的可能是:
docker logs <name-of-filebeat-container>
。可以使用docker ps
找到filebeat容器的名称。 docker compose logs <name-of-filebeat-service>
。该服务的名称可以在您的docker-composer.yml文件中找到。 关于JSON输出,您可以使用以下命令查询Docker引擎默认日志记录驱动程序:
# docker info | grep 'Logging Driver'
Logging Driver: json-file
如果您的容器具有其他日志记录驱动程序,则可以使用以下命令进行检查:
docker inspect -f '{{.HostConfig.LogConfig.Type}}' <name-or-id-of-the-container>
您可以在link中找到所有日志驱动程序
要使用其他日志驱动程序运行容器,您可以执行以下操作:
docker run -it --log-driver <log-driver> alpine ash
`logging:
driver: syslog
options:
syslog-address: "tcp://192.168.0.42:123"`
关于日志轮换问题,我想说的最简单的方法是使用syslog驱动程序配置日志记录驱动程序,将其配置到本地计算机(或syslog服务器),然后对文件进行logrotate。
您可以找到几本Linux的logrotate文章(我假设您正在使用),例如this one
关于docker - 如何在Docker容器中为Filebeat创建滚动日志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52854955/