- В корне репозитория есть папка
/logs
(если её нет, она создастся автоматически), куда пишутся файлы логов. - Файл, созданный в текущий день, называется
logs
. Файлы, созданные в предыдущие дни имеют имяlogs.{дата создания файла}
. По окончании текущего дня (в 00:00) при попытке записать новый лог файлlogs
меняет имя наlogs.{дата только что минувшего дня, она же - дата создания файла}
, и создаётся новый пустой файл с именемlogs
, куда и будет записан этот новый лог (и все следующие логи наступившего дня). - Всего в
/logs
могут находиться 4 файла:logs
и три файла, созданных в предыдущие три дня. Все файлы старше трёх дней уничтожаются. - В файл
logs
пишутся все логи текущего дня уровняWARNING
и выше в формате{levelname} - {asctime} - {module} - {message}
. - В консоль выводятся логи всех уровней в формате
{levelname} - {asctime} - {module} - {message}
. - В
/settings/logging.py
находится всё, что связано с логами. В частности, там находится функцияexample_logs()
(а также её вызов), которая производит тестовые логи. При первичном старте сервера она выполняется два раза, но далее всё работает как нужно.
Предположим, что у нас есть файл logs
и запущен сервер. Если при этом сменится день (неважно, естественным путём или
ручной сменой даты), после чего произойдёт перезапуск сервера путём autoreload
, то файл logs
не будет переименован
ввиду ошибки по типу:
PermissionError: [WinError 32] Процесс не может получить доступ к файлу, так как этот файл занят другим процессом: 'C:\\work\\microservice-python-pp-web\\logs\\logs' -> 'C:\\work\\microservice-python-pp-web\\logs\\logs.2024-08-27'.
, а
также логи перестанут записываться в файл. Скорее всего, это связано с работой файловой системы Windows. При ручном
перезапуске сервера ошибок не возникает.