Simple logging en python.

Tras muchas idas y venidas con la gestión de logs en python, he llegado a este tutorial de python que resume bastante bien la gestión más básica que se puede hacer en una aplicación con los logs:
En mi caso, los requisitos son:
– El log se guarda en fichero.
– El fichero debe rotar.
– Desde cualquier clase del workspace se puede acceder al log

import logging
import logging.handlers as handlers
 
# Se le puede poner cualquier nombre

logger = logging.getLogger(‘mi_app_name’)
logger.setLevel(logging.INFO)


#Log handler to file:
logHandler = handlers.RotatingFileHandler(‘mi_archivo_salida.log’, maxBytes=1000, backupCount=2)
logHandler.setLevel(logging.INFO)
# output format
formatter = logging.Formatter(‘%(asctime)s – %(name)s – %(levelname)s – %(message)s’)
logHandler.setFormatter(formatter)


logger.addHandler(logHandler)


# Comprobar que todos los logs van al mismo fichero:
logger.info(“Primer mensaje al log de tipo INFO”)
logger.error(“Primer mensaje al log de tipo ERROR”)
En cada clase que se vaya a usar el log, se instancia en el init, y luego se usa como un atributo de la clase:

class ejemplo:
“”” Clase de ejemplo para ver el log “””


def __init__(self):
“””Inicializa el objeto “””
self.logger = logging.getLogger(‘mi_app_name’) # Configurar el log.
 
     def metodo1. (self):
“”” Metodo 1 “””

self.logger.info(‘Mensaje de ejemplo 1’)

 
 
Para saber mucho más sobre los logs en python: https://docs.python.org/3/howto/logging-cookbook.html

Backup de correo pst

Los archivos pst de correo en outlook se ubican en

/cygdrive/c/Users/myuser/AppData/Local/Microsoft/Outlook/archive.pst

En mi caso, al tener más de 4 GB el archivo, no es posible hacer un backup a un disco duro Fat32.

Vamos a usar cygwin y tar, para hacer una copia del correo, separada en archivos de 1 GB:

CORREO=/cygdrive/c/Users/myuser/AppData/Local/Microsoft/Outlook/archive.pst

tar cz $CORREO  | split -b 1024MiB - $CORREO_bkp

Para recomponer:

cat myfiles_split.tgz_* | tar xz