使用logrotate分割日志
场景:需要对使用docker-compose部署的odoo15程序的日志按日期进行分割
修改odoo.conf
# 添加或取消注释
logfile = /opt/log/odoo.log修改docker-compose.yml 以挂载日志文件到服务器
volumes
# 注意:使用./web-data:/var/lib/odoo 系统运行会报错;只有使用 web-data:/var/lib/odoo 系统才会正常。
web-data:/var/lib/odoo
./conf:/etc/odoo
~/B8ERP/B8_addons:/mnt/B8_addons
~/B8ERP/Customer/GDXF:/mnt/Customer/GDXF
~/B8ERP/Customer/GDXY:/mnt/Customer/GDXY
~/B8ERP/OCA/account-financial-tools:/mnt/account-financial-tools
~/B8ERP/OCA/reporting-engine:/mnt/reporting-engine
~/B8ERP/OCA/contract:/mnt/contract
~/B8ERP/OCA/sale-workflow:/mnt/sale-workflow
~/B8ERP/OCA/account-closing:/mnt/account-closing
~/B8ERP/OCA/stock-logistics-reporting:/mnt/stock-logistics-reporting
~/B8ERP/OCA/stock-logistics-workflow:/mnt/stock-logistics-workflow
~/B8ERP/OCA/product-attribute:/mnt/product-attribute
~/B8ERP/OCA/maintenance:/mnt/maintenance
~/B8ERP/OCA/hr-expense:/mnt/hr-expense
~/B8ERP/OCA/server-ux:/mnt/server-ux
~/B8ERP/OCA/purchase-workflow:/mnt/purchase-workflow
~/B8ERP/om_account:/mnt/om_account
/opt/log:/opt/log进入容器内给/opt/log 777权限(存放log的文件夹路径)
在/etc/logrotate.d/目录下创建一个新的logrotate配置文件
/opt/log/odoo.log {
su root root
daily
missingok
rotate 31
dateext
notifempty
sharedscripts
postrotate
systemctl restart xc.service
endscript
}daily:每天轮换一次
missingok:如果日志文件丢失,不要写错误消息。
rotate:保留14个旧日志文件
dateext:文件以创建日期命名
compress:压缩日志文件
notifempty:如果日志文件为空,请不要轮换它
sharedscripts:所有的日志文件都轮转完毕后统一执行一次脚本
postrotate:通知应用程序重新打开日志文件
重启docker-compose
使用:logrotate --force /etc/logrotate.d/odoo-log 测试是否成功