2007-11-28

Cronolog 無法處理 Lighttpd Error Log?

Q8.cronolog 無法套用在 lighttpd.error.log 上?

Error Meaage:

裝了 cronolog (每天產生一個 log)後想套用在 Lighttpd access 及 error log 上但啟動 lighttpd 時卻會發生錯誤,說找不到 error log。

#/usr/local/etc/rc.d/lighttpd start
2007-11-28 17:17:22: (log.c.62) opening errorlog '|/usr/local/sbin/cronolog /var/log/%Y_%m_%d-error.log' failed: No such file or directory
2007-11-28 17:17:22: (server.c.945) opening errorlog failed, dying

Ans:

在 google 上找了一下後發現這篇#296 (Can't use cronolog with server.errorlog) - lighttpd - secure, fast, compliant, and very flexible web-server - Trac有說明就是目前使用 cronolog 來處理 lighttpd 的log的話對於 access log 是 ok 的,但若是 error log 則還有點問題,反正分析軟體通常也都只分析 access log 而以,所以就先這樣吧。

#accesslog.filename = "/var/log/lighttpd.access.log" //預設值
accesslog.filename = "|/usr/local/sbin/cronolog /var/log/%Y_%m_%d-access.log" //更改後
server.errorlog = "/var/log/lighttpd.error.log" //預設值

因為 lighttpd 沒有寫入 /var/log 的權限,所以上面的設定還是會有問題例如會跳出 /var/log/2007_11_29-access.log: Permission denied 但又不想把 /var/log 設 owner 為 www所以我把產生的路徑移到例如 /home/log 然後設 owner 為 www 這樣就可順利每天產生 log 了。

accesslog.filename = "|/usr/local/sbin/cronolog /home/log/%Y_%m_%d-access.log"