在CentOS上,您可以使用systemd服务和logrotate工具来实现Golang应用程序的日志自动化管理。以下是具体步骤:
首先,创建一个新的systemd服务文件,用于管理您的Golang应用程序。在/etc/systemd/system/目录下创建一个名为yourapp.service的文件(将yourapp替换为您的应用程序名称):
sudo vi /etc/systemd/system/yourapp.service
在文件中添加以下内容:
[Unit]
Description=Your Golang Application
After=syslog.target network.target
[Service]
User=<youruser>
Group=<yourgroup>
ExecStart=/path/to/your/golang-app-binary
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=<yourapp>
[Install]
WantedBy=multi-user.target
将<youruser>和<yourgroup>替换为您的应用程序运行所需的用户和组。将/path/to/your/golang-app-binary替换为您的Golang应用程序二进制文件的路径。将<yourapp>替换为您的应用程序名称。
保存并关闭文件。
运行以下命令以重新加载systemd配置:
sudo systemctl daemon-reload
使用以下命令启动您的Golang应用程序服务,并在系统启动时自动运行:
sudo systemctl start yourapp.service
sudo systemctl enable yourapp.service
创建一个新的logrotate配置文件,用于管理Golang应用程序的日志。在/etc/logrotate.d/目录下创建一个名为yourapp.conf的文件(将yourapp替换为您的应用程序名称):
sudo vi /etc/logrotate.d/yourapp
在文件中添加以下内容:
/var/log/<yourapp>/<yourapp>.log {
daily
missingok
rotate 7
compress
notifempty
create 0640 <youruser> <yourgroup>
}
将<yourapp>替换为您的应用程序名称。将/var/log/<yourapp>/替换为您的应用程序日志文件的路径。将<youruser>和<yourgroup>替换为您的应用程序运行所需的用户和组。
保存并关闭文件。
现在,您的Golang应用程序日志将每天自动轮转,并保留最近7天的日志。您可以根据需要调整logrotate配置。
要测试logrotate配置是否正确,请运行以下命令:
sudo logrotate -f /etc/logrotate.d/yourapp
这将强制logrotate立即轮转您的Golang应用程序日志。检查日志文件是否已正确轮转并压缩。