溫馨提示×

Golang 程序日志在 CentOS 上如何分類存儲

小樊
114
2025-02-08 23:23:12
欄目: 云計算

在 CentOS 上,您可以使用日志管理工具(如 logrotate)對 Golang 程序的日志進行分類存儲

  1. 首先,確保您已經在 CentOS 上安裝了 logrotate。如果沒有,請使用以下命令安裝:
sudo yum install logrotate
  1. 創建一個新的 logrotate 配置文件,例如 /etc/logrotate.d/golang。在這個文件中,您可以定義日志的分類存儲規則。以下是一個示例配置:
/path/to/your/golang/app/*.log {
    daily
    rotate 7
    compress
    delaycompress
    missingok
    notifempty
    create 0640 root adm
    sharedscripts
    postrotate
        /path/to/your/golang/app/restart.sh
    endscript
}

在這個示例中,我們定義了以下規則:

  • 每天旋轉日志文件(daily
  • 保留最近 7 天的日志文件(rotate 7
  • 使用 gzip 壓縮舊的日志文件(compress
  • 在下一次日志輪轉之前延遲壓縮(delaycompress
  • 如果日志文件丟失,不報錯(missingok
  • 僅在日志文件非空時進行輪轉(notifempty
  • 以 0640 的權限創建新的日志文件,屬于 root 和 adm 用戶(create 0640 root adm
  • 使用 sharedscripts 選項,以便在多個日志文件之間共享 postrotate 和 endscript 部分(sharedscripts
  • 在日志輪轉后,執行 restart.sh 腳本來重啟 Golang 應用程序(postrotate
  1. 根據您的 Golang 應用程序的日志文件路徑,修改 /etc/logrotate.d/golang 配置文件中的 /path/to/your/golang/app/*.log。

  2. 測試 logrotate 配置是否正確:

sudo logrotate -d /etc/logrotate.d/golang

如果沒有錯誤,您的配置應該是正確的。

  1. 最后,確保 logrotate 定期運行以自動分類存儲日志文件。您可以通過將 logrotate 添加到系統的 crontab 中來實現這一點。例如,要每天凌晨運行 logrotate,請將以下內容添加到 /etc/crontab 文件中:
0 0 * * * /usr/sbin/logrotate /etc/logrotate.conf

現在,您的 Golang 程序日志應該會根據您在 logrotate 配置文件中定義的規則進行分類存儲。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女