Поделитесь своим опытом логирования больших проектов
Поделитесь, пожалуйста, как вы организуете работу с логированием (модель logger).
Предположим у меня есть средних размеров проект
Module 1
- file 1.py
- file 2.py
Module 2
- file 1.py
- file 2.py
- file 3.py
main.py
config.py
В разных файлах есть свои классы, там есть поле logger. И я использую функцию настройки логеров:
def config_logger(logger):
handler = logging.FileHandler(LOGS_DIR + 'script.log', encoding='utf-8')
logger.setLevel(logging.DEBUG)
log_format = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(log_format)
logger.addHandler(handler)
По сути я хочу, чтобы логеры в разных файлах писали данные в один файл. При этом данные из сторонних библиотек мне там не нужны. Также, хотелось бы писать в один файл и при каждом запуске программы стирать предыдущие данные.
Сейчас у меня следующая проблема, чтобы выполнить эти условия, мне приходится сначала открывать и затирать файл в main.py: open(LOGS_DIR + 'script.log', mode='w').close(). Иначе не получается.
Есть подозрения, что я в целом неверно подхожу к логированию. Потому, буду рад любым советам и примерам, как вы подключаете логи к своим проектам.