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): Մեկնաբերում են հաղորդագրությունների ձևաչափը։