Рубрики
Без рубрики

Python: Как создать вращающиеся журналы

Получите практические, реальные навыки Python на наших ресурсах и пути

Автор оригинала: Mike Driscoll.

Модуль ведения журнала Python имеет много вариантов. В этой статье мы смотрим возможность создания вращающихся журналов модуля. Python поддерживает два типа вращающихся журналов:

  • Поверните журналы на основе размера ( RotacingfileHandler )
  • Поверните журналы на основе некоторого интервала времени ( TimeDRotatingfileHandler )

Давайте потратим некоторое время, узнав, как каждый из этих двух типов регистраторов реализован и используется.

Вращающийсяfilehandler.

Класс RotatingFileHandler в модуле ведения журнала позволяет разработчику создать объект обработчика для ведения журнала, который дает им возможность повернуть свои журналы в зависимости от размера журнала. Вы можете использовать Maxbytes Параметр, чтобы сказать ему, когда повернуть журнал. Это означает, что когда журнал достигает определенного количества байтов, он получает «перевернуты». Это происходит, когда размер файла собирается превышен. Обработчик закроет файл и молча открыл новый. Если вы пройдете в число для backuppcount Параметр, то он будет добавлять “.1”, “.2”, Etcetera до конца файлов журнала. Давайте посмотрим на простой пример:

Этот код основан на примере от Python Logging Cookbook Отказ Здесь мы создаем вращающийся журнал с уровнем регистрации информации. Затем мы устанавливаем обработчик для поворота журнала всякий раз, когда файл журнала длиной является 20 байт. Да, это абсурдно низкое число, но это делает демонстрацию того, что будет легче. Затем мы создаем цикл, которая создаст 10 строк в нашем файле журнала со сном между каждым вызовом для журнала. Если вы запускаете этот код, вы должны в конечном итоге с шестью файлами: оригинальный Test.log и 5 журналов резервных копий.

Теперь давайте посмотрим, как использовать Timedrotatingfilehandler Отказ

The TimedRotatingfileHandler

TimeDRotatingFileHandler позволяет разработчику создать вращающийся журнал на основе того, сколько времени прошло. Вы можете установить его, чтобы повернуть журнал в следующие условия времени:

  • Во-вторых (ы)
  • минута (м)
  • час (ч)
  • день (г)
  • W0-W6 (будний день)
  • полночь

Чтобы установить одно из этих условий, вы просто передаете его в Когда Параметр, который является 2-м аргументом. Вы также захотите установить интервал параметра тоже. Давайте посмотрим на пример:

Этот пример будет поворачивать журнал каждую минуту с подсчетом резервного копирования 5. Более реалистичное вращение, вероятно, будет в часе, поэтому вы установите интервал на 60 или то, когда в «H». Когда этот код запущен, он также создаст 6 файлов, но вместо того, чтобы добавлять целыми числами к имени файла журнала, он добавит временную метку, используя формат Strftime % Y-% m-% d_% h-% m-% s Отказ

Упаковка

Теперь вы знаете, как использовать мощные вращающиеся журналы Python. Надеюсь, вы сможете интегрировать его в свои собственные приложения или будущие программы.

Связанное чтение