2009-10-30 4 views
0

Я использую настройки журналирования, как показано ниже в файле settings.py:mod_python Джанго каротаж проблема


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.

проблема: когда лог вращается, я получил много файлов журнала, созданных в одно и то же время. , например, я установил 5 рабочих процессов в apache, и я получил 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 для входа в один файл из нескольких процессов. –

Смежные вопросы