cookbook: python logging

Sovint faig molts scripts de sistema usant com a llenguatge de programaci, doncs b, sobretot quan aquests scripts s’han de llenar 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 i ara la forma de fer ‘logs’ que uso per defecte en els meus scripts s:

  • viagra canadian pharmacy
  • canadian viagra online
  • canadian online pharmacy viagra
    • de codi que poso als scripts:

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

      Desprs d’importar la llibreria de ‘logging’ es recuperar el fitxer de configuraci on estan definits els parmetres de ‘logging’. Un cop carregat, descomento una o les dues lnies que hi ha a continuaci en funci de si vull logs per pantalla o noms contra un fitxer. La ltima lnia noms 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=INFO
      propagate=1
      channel=errorfitxer
      parent=(root)
      qualname=errorfitxer
      handlers=fitxer
      
      [handler_fitxer]
      class=handlers.RotatingFileHandler
      level=INFO
      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=INFO
      formatter=form01
      stream=sys.stderr
      args=(sys.stderr,)
      
      [formatter_form01]
      format=%(asctime)s %(levelname)s %(message)s
      datefmt=

      A ms 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.