← До списку лабораторних по Python
Повний опис / сценарій лабораторної:
Meta: навчитися користуватися стандартним модулем logging замість print у прод коді.
Krok 1. Створити новий файл app/log_demo.py.
Komandi: cd ~/python_lab1/src; touch app/log_demo.py
Krok 2. Додати базову конфігурацію logging.
Komanda: printf "import logging
logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s %(name)s %(message)s")
logger = logging.getLogger("lab4")
def run():
logger.debug("debug message")
logger.info("info message")
logger.warning("warning message")
" > app/log_demo.py
Krok 3. Запустити функцію run з модуля.
Komanda: export PYTHONPATH=$(pwd); python -c "from app.log_demo import run; run()"
Poyasnennya: побачиш повідомлення починаючи з рівня INFO.
Krok 4. Змінити рівень логування на DEBUG.
Komanda: sed -i "s/level=logging.INFO/level=logging.DEBUG/" app/log_demo.py 2>/dev/null || echo "онови вручну"
Krok 5. Повторно запустити і порівняти вивід.
Komanda: python -c "from app.log_demo import run; run()"
Krok 6. Додати файл логів замість стандартного виводу.
Komanda: printf "import logging
logger = logging.getLogger("lab4file")
logger.setLevel(logging.INFO)
handler = logging.FileHandler("lab4.log")
formatter = logging.Formatter("%(asctime)s %(levelname)s %(message)s")
handler.setFormatter(formatter)
logger.addHandler(handler)
def run():
logger.info("message to file")
" > app/log_to_file.py
Krok 7. Запустити log_to_file і перевірити файл.
Komandi: python -c "from app.log_to_file import run; run()"; cat lab4.log
Krok 8. Додати у main використання логера замість print.
Poyasnennya: рефакторинг основного застосунку на logging.
Krok 9. Занотувати різницю між logger per module та кореневим логером.
Krok 10. Mini zvit.
Zavdannya: опиши як ти налаштуєш логування для середовищ dev, stage, prod.