Какова целевая аудитория вашей программы?
Если вы создаете настольное приложение, и нельзя ожидать, что большинство пользователей будут читать журналы, вы должны сделать это за них. Не только ротация, но и удаление старых — вы не хотите чтобы заполнить жесткий диск бедного пользователя!
С другой стороны, если аудитория состоит из опытных системных администраторов UNIX, вам придется использовать другой подход.
Системным администраторам потребуются функции, о которых вы даже не подозреваете. Отправляйте их по электронной почте, записывайте их в хранилище только для добавления и так далее. Для этой аудитории лучше всего, если ваша регистрация будет максимально гибкой. Гибкость (в UNIX) означает простоту — так что просто запишите в файл и считайте, что дело сделано.
Кроме того, системные администраторы не хотят заново учиться вести журналы заново. Даже если вы хотите предоставить такую функцию, убедитесь, что значение по умолчанию является разумным в рамках этого предположения.
Окончательно. tdelaney поднял важный вопрос: стандартный FileHandler
не обращает особого внимания на файл, в который он пишет. Вы должны использовать WatchedFileHandler, который был написан специально для этой цели.
person
loopbackbee
schedule
17.03.2015
logrotate.d
зависит от закрытия и повторного открытия регистратором своего указателя файла для каждого события журнала. Я не уверен, делает ли это стандартный файловый регистратор Python. - person tdelaney   schedule 17.03.2015logging
есть хорошая альтернатива, см. конец моего ответа - person loopbackbee   schedule 17.03.2015WatchedFileHandler
. Вы имели в видуRotatingFileHandler
? - person loopbackbee   schedule 19.03.2015WatchedFileHandler
используется сlogrotate
.RotatingFileHandler
отвечает за ротацию журналов и заменяетlogrotate
. - person devhallo   schedule 19.03.2015