Parece que tengo algunos problemas al intentar implementar el inicio de sesión en mi proyecto de python.Archivo de configuración de registro de Python
Simplemente estoy tratando de imitar la siguiente configuración:
Python Logging to Multiple Destinations
Sin embargo en vez de hacer esto dentro del código, me gustaría tenerlo en un archivo de configuración.
A continuación es mi fichero de configuración:
[loggers]
keys=root
[logger_root]
handlers=screen,file
[formatters]
keys=simple,complex
[formatter_simple]
format=%(asctime)s - %(name)s - %(levelname)s - %(message)s
[formatter_complex]
format=%(asctime)s - %(name)s - %(levelname)s - %(module)s : %(lineno)d - %(message)s
[handlers]
keys=file,screen
[handler_file]
class=handlers.TimedRotatingFileHandler
interval=midnight
backupCount=5
formatter=complex
level=DEBUG
args=('logs/testSuite.log',)
[handler_screen]
class=StreamHandler
formatter=simple
level=INFO
args=(sys.stdout,)
El problema es que mi salida de la pantalla se ve así:
2010-12-14 11: 39: 04,066 - root - ADVERTENCIA - 3
2010-12 -14 11: 39: 04,066 - root - ERROR - 4
2010-12-14 11: 39: 04,066 - root - Importante - 5
Mi archivo es de salida, pero se ve igual que antes (aunque con la información adicional incluida). Sin embargo, los niveles de depuración e información no se envían a ninguno.
estoy en Python 2.7
Aquí está mi ejemplo sencillo mostrando el fracaso:
import os
import sys
import logging
import logging.config
sys.path.append(os.path.realpath("shared/"))
sys.path.append(os.path.realpath("tests/"))
class Main(object):
@staticmethod
def main():
logging.config.fileConfig("logging.conf")
logging.debug("1")
logging.info("2")
logging.warn("3")
logging.error("4")
logging.critical("5")
if __name__ == "__main__":
Main.main()