logging Python

Содержание
Введение
Пример
Включить Debug
Лог в файл
Форматирование
Передать уровень лога как строку
Похожие статьи

Введение

В этой статье вы можете изучить примеры применения библиотеки logging

Пример

По умолчанию Info и Debug отключены. В этом легко убедиться запустив скрипт следюущего содержания

import logging logging.critical("Critial Log") logging.error("Error Log") logging.warning("Warning Log") logging.info("Info Log") logging.debug("Debug Log")

python log_example.py

CRITICAL:root:Critial Log ERROR:root:Error Log WARNING:root:Warning Log

Включить Debug

Если теперь нужно повысить детализацию лога сделать это можно с помощью logging.basicConfig

import logging logging.basicConfig(level=logging.DEBUG) logging.critical("Critial Log") logging.error("Error Log") logging.warning("Warning Log") logging.info("Info Log") logging.debug("Debug Log")

python log_example.py

CRITICAL:root:Critial Log ERROR:root:Error Log WARNING:root:Warning Log INFO:root:Info Log DEBUG:root:Debug Log

Лог в файл

import logging logging.basicConfig(filename='example.log', level=logging.DEBUG) logging.critical("Critial Log") logging.error("Error Log") logging.warning("Warning Log") logging.info("Info Log") logging.debug("Debug Log")

python log_example.py

В терминал уже ничего не выводится, зато появился файл example.log

cat example.log

CRITICAL:root:Critial Log ERROR:root:Error Log WARNING:root:Warning Log INFO:root:Info Log DEBUG:root:Debug Log

Форматирование

Можно задать нужный вам формат логов с помощью logrecord-attributes

# log_example.py import logging def main() -> None: logging.basicConfig( filename="example.log", level=logging.DEBUG, format="%(asctime)s %(levelname)s: %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) logging.critical("Critial Log") logging.error("Error Log") logging.warning("Warning Log") logging.info("Info Log") logging.debug("Debug Log") if __name__ == "__main__": main()

python log_example.py
cat example.log

2026-10-05 02:42:08 CRITICAL: Critial Log 2026-10-05 02:42:08 ERROR: Error Log 2026-10-05 02:42:08 WARNING: Warning Log 2026-10-05 02:42:08 INFO: Info Log 2026-10-05 02:42:08 DEBUG: Debug Log

Передать уровень лога как строку

Часто уровень лога прописан где-то в конфиге. Поэтому он будет прочитан и передат в функцию как строка а не как объект вида logging.critical … logging.debug

В этом случае нужно использовать logginb.getLevelName()

# log_example.py import logging def main(log_level) -> None: level = str(log_level).upper() logging.basicConfig( level=logging.getLevelName(level), format="%(asctime)s %(levelname)s: %(message)s", datefmt="%Y-%m-%d %H:%M:%S", ) logging.critical("Critial Log") logging.error("Error Log") logging.warning("Warning Log") logging.info("Info Log") logging.debug("Debug Log") if __name__ == "__main__": main("Error")

python log_example.py

2026-10-05 02:42:08 CRITICAL: Critial Log 2026-10-05 02:42:08 ERROR: Error Log

Article author: Andrei Olegovich

Похожие статьи
Interactive mode
str: strings
\: long line wrapping
Lists []
if, elif, else
Loops
Methods
Functions
*args **kwargs
enum
Get Variable Type
Testing with Python
Calling REST API with Python
Files: write, read, append, context manager…
Download File
SQLite3: database
datetime: Date and Time в Python
json.dumps
Selenium + Python
Issues with Python
DJANGO
Flask
ZPL printer script
socket :Python Sockets
Virtual Environment
subprocess: shell commands execution
multiprocessing
psutil: system usage
sys.argv: command prompt variables
PyCharm: IDE
pydantic: data validation
paramiko: SSH with Python
enumerate

Поиск по сайту

Подпишитесь на Telegram канал @aofeed чтобы следить за выходом новых статей и обновлением старых

Перейти на канал

@aofeed

Задать вопрос в Телеграм-группе

@aofeedchat

Контакты и сотрудничество:
Рекомендую наш хостинг beget.ru
Пишите на info@urn.su если Вы:
1. Хотите написать статью для нашего сайта или перевести статью на свой родной язык.
2. Хотите разместить на сайте рекламу, подходящую по тематике.
3. Реклама на моём сайте имеет максимальный уровень цензуры. Если Вы увидели рекламный блок недопустимый для просмотра детьми школьного возраста, вызывающий шок или вводящий в заблуждение - пожалуйста свяжитесь с нами по электронной почте
4. Нашли на сайте ошибку, неточности, баг и т.д. ... .......
5. Статьи можно расшарить в соцсетях, нажав на иконку сети: