Creating a Decorator for Logging
Python Decorators haqida o'rganamiz.
Logging Uchun Dekorator Yaratish
Dekoratorlar keng turdagi maqsadlar uchun ishlatilishi mumkin, masalan, Django yoki Flask kabi veb-ramkalarda autentifikatsiya qo‘shishdan tortib, funktsiya chaqiruvi haqida foydali ma'lumotlarni loglashgacha.
Python kuchli va xavfsiz ishlaydigan logging moduliga ega bo‘lib, uni ishlatishingiz mumkin. Masalan, agar siz moliyaviy dastur yozgan bo‘lsangiz, tranzaksiyalarni kuzatish uchun qandaydir usulga ega bo‘lishni xohlaysiz. Garchi loglash bu turdagi narsalar uchun xavfsiz usul bo‘lmasa-da, siz ma'lumotlarni xavfsiz ma'lumotlar bazasiga yozadigan dekorator yaratishingiz mumkin.
Biroq, ishni biroz soddaroq qilish uchun, quyidagi misolda logni faylga yozishni ko‘rsatamiz.
Mana yangi fayl bo‘lib, unda logging_decorator.py nomli faylda yaratishingiz kerak bo‘lgan birinchi funktsiya:
Eslatma
Bu kodning har bir qismiga chuqur tushunishingiz shart emas yoki logging_formatter()
funktsiyasiga. Bu misol dekoratorlarning keng tarqalgan ishlatilish holati sifatida keltirilgan.
Ushbu dekorator ilgari keltirilgan dekoratorlar kabi ishlaydi: u funktsiyani qabul qiladi, uni qayta ishlash uchun wrapper
funktsiyasini yaratadi (bu ham barcha pozitsion va kalit so‘z argumentlarini uzatishni o‘z ichiga oladi). Bu yerda farq shundaki, siz ekranga chop etish o‘rniga Pythonning logging modulini ishlatib, log faylga yozasiz. Buning uchun siz logging
modulini import qilasiz, logging.getLogger()
orqali logger yaratib, logging darajasini INFO
darajasiga o‘rnatishingiz kerak.
Keyingi qadam — logging_formatter()
funksiyasini chaqirib, logni qanday formatlashni va qayerga saqlashni belgilash. Nihoyat, siz loglashni amalga oshiradigan funktsiya haqida ma'lumotlarni logga yozasiz.
Endi logging_formatter()
funksiyasini qo‘shamiz:
Ushbu kod, dekoratsiya qilinayotgan funktsiyaning nomini olib, shu nomga asoslangan log faylini yaratadi. So‘ngra logda vaqtni, funktsiya nomini, log darajasini va log xabarini qo‘shish uchun format satrini yaratadi. Nihoyat, siz log formatini belgilab, loggerga faylni diskka yozishni amalga oshiradigan fayl qo‘shuvchini (file handler) qo‘shasiz.
Keyingi qadam — quyidagi kodni faylingizning oxiriga qo‘shish:
Bu treble() funksiyasini log() dekoratori bilan qanday dekoratsiya qilishni ko‘rsatadi.
Kod ishlatilganda, siz treble.log nomli faylni dasturingiz joylashgan papkada topasiz, va unda quyidagi kabi ma'lumotlar bo‘lishi kerak:
Bu log satrida vaqt tamg‘asi, funktsiya nomi, log darajasi va log funksiyasi tomonidan yaratilgan xabarlar ko‘rsatiladi.
Last updated on