oriolrius.cat

Des del 2000 compartiendo sobre…

cookbook: python logging

Reading time: 2 – 3 minutes

Sovint faig molts scripts de sistema usant python com a llenguatge de programació, doncs bé, sobretot quan aquests scripts s’han de llençar usant el ‘crontab’ va molt bé tenir un bon ‘log’ per saber com van les coses. Així doncs, la setmana passada vaig decidir posar-me a fons amb el tema ‘logging’ de python i ara la forma de fer ‘logs’ que uso per defecte en els meus scripts és:

Snippet de codi python que poso als scripts:

import  logging,logging.config
# logging
logging.config.fileConfig('script_logging.ini')
#logger = logging.getLogger('errorpantalla')
logger = logging.getLogger('errorfitxer')
logger.setLevel(logging.INFO)

Després d’importar la llibreria de ‘logging’ es recuperar el fitxer de configuració on estan definits els paràmetres de ‘logging’.  Un cop carregat, descomento una o les dues línies que hi ha a continuació en funció de si vull logs per pantalla o només contra un fitxer. La última línia només indica fins a quin nivell de depuració he de fer mostrar logs.

El fitxer de configuració:

[loggers]
keys=root,errorpantalla,errorfitxer

[handlers]
keys=fitxer,pantalla

[formatters]
keys=form01

[logger_root]
level=DEBUG
propagate=1
channel=
parent=
qualname=(root)
handlers=

[logger_errorpantalla]
level=DEBUG
propagate=1
channel=errorpantalla
parent=(root)
qualname=errorpantalla
handlers=pantalla

[logger_errorfitxer]
level=DEBUG
propagate=1
channel=errorfitxer
parent=(root)
qualname=errorfitxer
handlers=fitxer

[handler_fitxer]
class=handlers.RotatingFileHandler
level=DEBUG
formatter=form01
filename=paht_to_log_file/log_file
mode=a
maxsize=0
backcount=1
args=('paht_to_log_file/log_file', 'a', 0, 1)

[handler_pantalla]
class=StreamHandler
level=DEBUG
formatter=form01
stream=sys.stderr
args=(sys.stderr,)

[formatter_form01]
format=%(asctime)s %(levelname)s %(message)s
datefmt=

A més vaig trobar un petit script, que carrega una GUI per generar les configuracions dels fitxers de configuració dels ‘logs’, realment útil i simple d’usar:

logging configurator for python

Aquesta GUI l’he trobada al paquet: logging-0.4.9.6.tar.gz concretament al directori ‘tests’. Si no voleu buscar tant també podeu descarregar-lo directament: logconf.py.

Comments are closed.

Últimas entradas

Resumen 2023

Reading time: 14 – 22 minutes El 2023 comenzó con una sensación de renovación y optimismo. Tras un período marcado por la pandemia, este año se presentó como un lienzo en blanco, lleno de posibilidades y nuevas experiencias. Aunque el

Leer más »
Archivo