2009-10-30 51 views
0

我在settings.py文件使用日誌設置如下:mod_python的django的測井問題


logging.basicConfig(級別= LOG_LEVEL,格式= LOG_FORMAT);

handler = logging.handlers.RotatingFileHandler(LOG_FILE_PATH,'a',LOG_FILE_SIZE,LOG_FILE_NUM);

formatter = logging.Formatter(LOG_FORMAT);

handler.setFormatter(formatter);

logging.getLogger()。addHandler操作(處理程序)


和我使用的mod_python與apache2的。

問題是:當日志旋轉時,我得到了許多同時創建的日誌文件。例如, 例如,我在apache中設置了5個工作進程,當它旋轉時,我得到了log.1,log.2 ... log.5。

有什麼建議嗎?

回答

1

RotatingFileHandler不適用於多進程系統。您注意到每個進程都會注意到該文件太大並且會啓動新日誌,因此您最多可以獲得5個新日誌。要正確實現它並不那麼容易:在創建新文件之前必須獲得進程間鎖,並通知每個進程重新打開它。您最好在服務器重啓或設置單進程日誌記錄服務器時使用外部(與您的操作系統一起提供)輪換。

+0

+1,並且您可以使用http://docs.python.org/library/logging.html#logging-to-a-single-file-from-multiple-processes瞭解如何從一個文件登錄到單個文件多個進程。 – 2009-10-30 11:46:52