bloqueo de ficheros...

Pepe Aracil pepe en diselpro.com
Vie Oct 29 10:45:45 CEST 2004


Gracias.

Que canya.. !!! con rotación de ficheros y todo XD

Esto es lo que buscaba... Prometo revisarme mejor los módulos estándar antes 
de preguntar ;)

Saludos.

El Viernes, 29 de Octubre de 2004 07:43, Pedro A. Carrasco Ponce escribió:
> Pepe Aracil wrote:
> > Hola.
> >
> > Estoy acabando una aplicación para recepción de alarmas por teléfono en
> > python. Lanzo un proceso por cada linea (puerto serie) que tengo que
> > atender.
> >
> > Mi problema es que no sé como volcar los logs que genera cada proceso en
> > un mismo fichero. No puedo utilizar el módulo syslog, porque tiene que
> > poder funcionar en win32.
>
> Yo utilizo el módulo logger, te posteo la clase que utilizo log:
> ------------------------ Fichero CLog ----------------------------
> # -*- coding: ISO-8859-1 -*-
> import logging
>
> class __Log:
>    def __init__(self):
>      """Crea el logger para poder guardar los mensajes de loggin"""
>      self.__logger = logging.getLogger('NombreUnico')
>      hdlr = logging.FileHandler('Ficherode Log.log')
>      formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
>      hdlr.setFormatter(formatter)
>      self.__logger.addHandler(hdlr)
>      self.__logger.setLevel(logging.DEBUG)
>
>    def info(self,cadena):
>      self.__logger.info(cadena)
>
>    def error(self,cadena):
>      self.__logger.error(cadena)
>
>    def critical(self,cadena):
>      self.__logger.critical(cadena)
>
>    def warning(self,cadena):
>      self.__logger.warning(cadena)
>
>    def debug(self,cadena):
>      self.__logger.debug(cadena)
>
>    def exception(self,cadena):
>      self.__logger.exception(cadena)
>
> __instance = None
>
> def getLogger():
>    global __instance
>    if __instance is None:
>      __instance = __Log()
>    return __instance
> --------------------------------- FIN ----------------------------
> Utilizo un patrón de diseño Singleton, lo que asegura que hay una
> instancia sólo para toda la aplicación. Sólo tienes que hacer:
>
> import CLog
>
> log = CLog.getLogger()
> log.info('Cadena')
> log.warning('Prueba')
> ....
>
> En la página de la ayuda del módulo logger tienes más información.
>
> Un saludo.




Más información sobre la lista de distribución Python-es