Apache 配置日誌切割

夏秋初發表於2024-06-15

參考

  • chat-gpt
  • https://blog.csdn.net/qq_62462797/article/details/127029998
  • https://www.cnblogs.com/tz90/p/14751349.html#_label0_0
  • https://www.cnblogs.com/cp-miao/p/5725717.html

環境

環境 版本 說明
Windows Windows 10 家庭中文版 22H2 19045.4412
VS Code 1.90.0
Docker Desktop 4.27.1
Docker 25.0.2
Docker Compose v2.24.3-desktop.1
Centos 7.6 容器
Apache 2.4.6 容器內安裝

正文

本文僅簡單使用日誌按天分割,還有很多未使用的功能可以自行搜尋瞭解學習。

介紹

Apache 提供了不把日誌直接寫入檔案,而是透過管道傳送給另外一個程式的能力。這樣就大大加強了對日誌進行處理的能力。這個透過管道得到的程式可以是任意程式,如日誌分析、壓縮日誌等。要實現將日誌寫到管道的操作,只需要將配置中日誌檔案部分的內容替換為"|程式名"即可。
rotatelogs 是 Apache 自帶的分割工具,配置後可以將 Apache 的日誌進行按每天的日期自動分割。

步驟

  1. 找到 apache 配置檔案,我的配置檔案位置為:/etc/httpd/conf/httpd.conf
  2. 找到如下行並修改:
    # /usr/local/apache2/logs/access_log-%Y%m%d:指定日誌檔案以及檔名
    # 86400:指定日誌分割時間,預設單位秒,86400表示一天分割一次
    # 480:指定分割槽時差,預設單位分鐘,480表示8小時
    # common:使用的模板檔名
    
    
    # 錯誤日誌
    # ErrorLog "logs/error_log"
    ErrorLog "|/usr/sbin/rotatelogs logs/error_log_%Y_%m_%d 86400 480"
    
    # 訪問日誌
    # CustomLog "logs/access_log" combined
    CustomLog "|/usr/sbin/rotatelogs logs/access_log_%Y_%m_%d 86400 480" combined
    
  3. 生效配置
    #檢查配置檔案語法
    apachectl -t
    
    #重新載入配置檔案不重啟服務
    apachectl graceful
    

相關文章