Sobes.tech
Junior

Ինչպես ավելացնել գրանցում ցանկացած Python սցենարում?

sobes.tech AI

Պատասխան AI-ից

Հիմնական գրանցման համար.

import logging

logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')

def my_function():
    logging.info("my_function-ի կատարման սկիզբը")
    # Ձեր կոդը
    logging.debug("Միջանկյալ տեղեկատվություն դեբագի համար")
    try:
        result = 1 / 0
    except ZeroDivisionError:
        logging.error("Բաժանում զրոյով սխալ")
    logging.info("my_function-ի ավարտը")

my_function()

Անհրաժեշտ է ավելի ճկուն կոնֆիգուրացիայի համար օգտագործել կոնֆիգուրացիոն ֆայլ կամ բառարան:

import logging
import logging.config

# Բառարանի օրինակով կոնֆիգուրացիա
log_config = {
    'version': 1,
    'formatters': {
        'simpleFormatter': {
            'format': '%(asctime)s - %(name)s - %(levelname)s - %(message)s'
        },
    },
    'handlers': {
        'consoleHandler': {
            'class': 'logging.StreamHandler',
            'formatter': 'simpleFormatter',
            'level': 'INFO'
        },
        'fileHandler': {
            'class': 'logging.FileHandler',
            'formatter': 'simpleFormatter',
            'level': 'DEBUG',
            'filename': 'app.log'
        }
    },
    'loggers': {
        'myApp': {
            'handlers': ['consoleHandler', 'fileHandler'],
            'level': 'DEBUG',
            'propagate': False
        }
    },
    'root': {
        'handlers': ['consoleHandler'],
        'level': 'INFO'
    }
}

logging.config.dictConfig(log_config)
logger = logging.getLogger('myApp')

def another_function():
    logger.info("another_function-ի կատարման մասին")
    logger.debug("Մանրամասներ կատարման մասին")

another_function()

Հիմնական տարրեր՝

  • logging.basicConfig(): Հեշտ միջոց է հիմնական գրանցողի կարգավորելու համար:
  • logging.getLogger(name): Ստանում է գրանցողի օրինակ։ Օգտագործելով անուններ՝ կարելի է ստեղծել գրանցողների հիերարխիա:
  • Գրանցման մակարդակներ:
    • DEBUG: Մանրամասն տեղեկատվություն՝ դեբագի համար:
    • INFO: Ընդհանուր տեղեկություններ:
    • WARNING: Ակնարկներ հնարավոր խնդիրների մասին:
    • ERROR: Գործողության սխալ:
    • CRITICAL: Կրիտիկական սխալ՝ ծրագրի ավարտի վտանգ:
  • Handler-ներ (Handlers): Որտեղ ուղարկվեն հաղորդագրությունները՝ կոնսոլ, ֆայլ, ցանց և այլն:
  • Formatters (Formatters): Մեկնաբերում են հաղորդագրությունների ձևաչափը։