Lo único que he encontrdo es el handler RotatingFileHandler de python.
Dicho handler podría ser valido o no, dependiendo de los requisitos funcionales. A mi, para lo que tengo que hacer no, pero ahí va un ejemplo de su uso. Una clase que lo recubre:
import logging
import sys
from logging.handlers import RotatingFileHandler
#------------------------------------------------------------------------------
# RotatingFile
#------------------------------------------------------------------------------
class RotatingFile:
#------------------------------------------------------------------------------
def __init__(self,pathFilename,numBytes=0,numFiles=0):
"""
Notas:
- El fichero es de texto
- Para que exista la rotación los argumentos opcionales no pueden ser
0.
"""
# Notas:
# - Como al logger no se le fija un nivel, sacará todo
# - Al logger se le pone como identificador, la ruta al fichero.
# - Si numFiles es muy alto el algofirmo que se usa en el 'handler'
self.__logFile = pathFilename
self.__logger = logging.getLogger(self.__logFile)
hdlr = RotatingFileHandler( self.__logFile,'a',numBytes,numFiles )
fmt = logging.Formatter("%(message)s")
hdlr.setFormatter(fmt)
self.__logger.addHandler(hdlr)
#------------------------------------------------------------------------------
def write(self,value):
self.__logger.critical(value)
#------------------------------------------------------------------------------
# main (de prueba)
#------------------------------------------------------------------------------
if ( __name__ == "__main__") :
rf = RotatingFile("rotatingfile.out",10,5)
for i in range(10):
rf.write(str(i))
No hay comentarios:
Publicar un comentario