Войти Создать аккаунт

Файлы · 11 из 12

Ротация журнала

Задействованы также: Списки

Журнал не должен расти бесконечно. Когда он перерастает предел, его переименовывают в «.1», прежний «.1» — в «.2», и так до предела хранения; самый старый удаляется.

Что сделать

Не дайте журналу расти бесконечно — переросший предел сдвиньте в копии.

Что приходит

  • imya — имя журнала

  • predel — предельный размер в байтах

  • hranit — сколько копий хранить

Что вернуть

Сколько файлов сдвинуто вместе с самим журналом; журнала нет или он не больше predel — 0, и ничего не трогается.

Допишите функцию povernut в редакторе справа. Результат верните через return — то, что напечатано, на проверку не влияет.

Пример

Журнал app.log в 100 байт при пределе 50: он становится app.log.1, прежний app.log.1 — app.log.2 и так далее, на месте журнала появляется пустой app.log. Копия с номером больше hranit удаляется. Копий раньше не было — сдвинут один файл: ответ 1.

Тот же пример кодом
Перед вызовом
with open("app.log", "w", encoding="utf-8") as f:
    f.write("x" * 100)
itog = povernut("app.log", 50, 3)
import os
est = (os.path.exists("app.log"), os.path.exists("app.log.1"),
       os.path.getsize("app.log"))
Вызов
(itog, est)
Вернуть
(1, (True, True, 0))
Ctrl+Enter — проверить

Обсуждение

Вопросов пока нет.

Войдите, чтобы спросить.