logging Python

Contents
Введение
Пример
Включить 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-04-12 08:56:16 CRITICAL: Critial Log 2026-04-12 08:56:16 ERROR: Error Log 2026-04-12 08:56:16 WARNING: Warning Log 2026-04-12 08:56:16 INFO: Info Log 2026-04-12 08:56:16 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-04-12 08:56:16 CRITICAL: Critial Log 2026-04-12 08:56:16 ERROR: Error Log

Related Articles
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
Banner Image

Search on this site

Subscribe to @aofeed channel for updates

Visit Channel

@aofeed

Feedback and Questions in Telegram

@aofeedchat