Как организовать логгирование в python приложении?
Добрый день! Надеюсь на ответ более опытных коллег.
Как лучше организовать логирование в python приложении, которое запускается через systemd или в docker, можно ли в таком случае все отправлять в stdout, stderr, а запись в файлы положить на плечи systemd, docker?
Для логгирование на уровне приложения вижу плюсы в том, что мы можем более гибко с разными фильтрами, ханлерами раскладывать все по файлам с ротацией.
Для логгирования уровнем выше преимуществом будет простота настройки и меньше кода относящегося к логгированию.
Речь особенно про блокирующие хандлеры, smtp, file, ну или кастомный TelegrammHandler в асинхронных или в Web приложениях. В рецептах библиотеки logging в этом случае предлагается использовать QueueListner, QueueHandler, но ведь это опять усложнение на уровне приложения.
Или все таки все зависит от ситуации? Тогда в каком случае применять тот и другой подход?
Ошибки выкидывай в sentry, остальное зависит сугубо от твоего желания и удобства. Я никогда особо не заморачивался с логами, для некоторых сервисов нужно было писать ход выполнения, использовал коробочный logging или loguru, запись в файл, в случае с docker можно монтировать в отдельный каталог.