logger - python logging example
Iniciar sesiĆ³n en dos archivos con diferentes configuraciones (3)
Ya estoy usando una configuración de registro básica donde todos los mensajes en todos los módulos se almacenan en un solo archivo. Sin embargo, ahora necesito una solución más compleja:
- Dos archivos: el primero sigue siendo el mismo.
- El segundo archivo debe tener algún formato personalizado.
He estado leyendo los documentos para el módulo, pero son muy complejos para mí en este momento. Madereros, manipuladores ...
Entonces, en resumen:
Cómo iniciar sesión en dos archivos en Python 3, es decir:
import logging
# ...
logging.file1.info(''Write this to file 1'')
logging.file2.info(''Write this to file 2'')
Muchas gracias Funcionó muy bien, hice algunas variaciones para guardar el archivo en una ubicación personalizada
def setup_logger(name, log_file, level=logging.DEBUG):
formatter = logging.Formatter(''%(asctime)s %(levelname)s %(message)s'')
handler = logging.FileHandler(''C://config//'+log_file)
handler.setFormatter(formatter)
logger = logging.getLogger(name)
logger.setLevel(level)
logger.addHandler(handler)
return logger
Puedes hacer algo como esto:
import logging
formatter = logging.Formatter(''%(asctime)s %(levelname)s %(message)s'')
def setup_logger(name, log_file, level=logging.INFO):
"""Function setup as many loggers as you want"""
handler = logging.FileHandler(log_file)
handler.setFormatter(formatter)
logger = logging.getLogger(name)
logger.setLevel(level)
logger.addHandler(handler)
return logger
# first file logger
logger = setup_logger(''first_logger'', ''first_logfile.log'')
logger.info(''This is just info message'')
# second file logger
super_logger = setup_logger(''second_logger'', ''second_logfile.log'')
super_logger.error(''This is an error message'')
def another_method():
# using logger defined above also works here
logger.info(''Inside method'')
def setup_logger(logger_name, log_file, level=logging.INFO):
l = logging.getLogger(logger_name)
formatter = logging.Formatter(''%(message)s'')
fileHandler = logging.FileHandler(log_file, mode=''w'')
fileHandler.setFormatter(formatter)
streamHandler = logging.StreamHandler()
streamHandler.setFormatter(formatter)
l.setLevel(level)
l.addHandler(fileHandler)
l.addHandler(streamHandler)
setup_logger(''log1'', txtName+"txt")
setup_logger(''log2'', txtName+"small.txt")
logger_1 = logging.getLogger(''log1'')
logger_2 = logging.getLogger(''log2'')
logger_1.info(''111messasage 1'')
logger_2.info(''222ersaror foo'')