Apache-2.2
Apache httpd:將錯誤日誌發送到系統日誌和本地磁碟?不接觸 /etc/syslog.conf?
我有一個 Apache httpd 2.2 伺服器。我想使用 syslog 記錄所有消息,以便將請求發送到我們的中央 syslog 伺服器。我還想確保所有日誌消息都發送到本地磁碟,以便系統管理員可以輕鬆訪問本地系統上的日誌文件。
很容易將 HTTP 訪問日誌發送到本地磁碟和系統日誌。一種常見的方法是:
LogFormat "%V %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined CustomLog logs/access_log combined CustomLog "|/usr/bin/logger -t httpd -i -p local4.info" combined
但是對於錯誤日誌,要做到這一點並不容易。以下配置不起作用,因為錯誤日誌僅使用最後一個 ErrorLog 節。第一個 ErrorLog 節被忽略。
ErrorLog logs/error_log ErrorLog syslog:local4.error
如何確保將 Apache 錯誤日誌寫入本地磁碟並發送到 syslog?
是否可以在不觸摸的情況下做到這一點
/etc/syslog.conf
?如果我的使用者想要管理他們自己的 Apache 配置文件,我很好,但我不希望他們接觸系統文件,例如/etc/syslog.conf
嘗試將所有 ErrorLog 發送到管道,例如 perl 腳本。這個 perl 腳本可以指向 syslog 和本地磁碟。
您可以使用:
ErrorLog "| tee -a /var/log/httpd/error_log | /usr/bin/logger -t httpd -i -p local4.error"
去做你想做的事。