bloqueo de ficheros...
Pedro A. Carrasco Ponce
pedro.carrasco en iver.es
Vie Oct 29 07:43:40 CEST 2004
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.
--
Pedro
Más información sobre la lista de distribución Python-es