问题描述
情况如下:
- spring-boot服务通过回写日志将日志写入output.log文件
- Logback配置为轮换日志,它会定期清空output.log,将日志放入轮换策略中指定的存档文件中。也就是说,output.log本身就是具有最新日志的临时缓冲区
- 一切正常:https://www.youtube.com/watch?v=hrWmfC3y9zM
- 但是,如果我们将日志文件夹从外部容器安装到主机卷上(并且我们需要使用第三方实用程序进行读取),那么一切都会崩溃:output.log会自动清除,无限期地增长,并且轮换策略中指定的归档文件根本不会创建。即使没有人从主机上的该目录中读取文件,也会发生这种情况。
例如
1)容器内的目录:
/app/
|-> service.jar
缓冲区日志写在这里:
/app/logs/
|-> output.log
旋转的存档日志文件存储在此处
/app/
| -> out1.log
| -> out2.log
目录已在docker compose中安装到主机上
volumes:
- /LOGS:/app/logs:rw
2。第二个容器读取日志的安装方式如下:
volumes:
- /LOGS:/var/log
但是即使停止读取容器,文件也会被锁定。只需从源容器安装文件夹就足以阻止
这是docker卷的某种功能吗?有一些解决方法吗?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)