2011-06-02 20 views
11

Tengo una aplicación de pirámide y quiero que los registros lleguen a stderr y stdout. stdout debe ser el nivel "INFO" y más abajo. stderr debería ser "WARN" y más alto. ¿Cómo cambiaría mi archivo .ini para hacer esto?Pyramid logging

Actualmente estoy registrando de esta manera, ¿se considera esta la forma correcta?

log = logger.getLogger(__name__) 
log.info("update ...") 
log.error("MAYDAY MAYDAY... BOOM!!!")

Actualmente estoy utilizando el registro predeterminado, que es esto.

 
[loggers] 
keys = root, app 

[handlers] 
keys = console 

[formatters] 
keys = generic 

[logger_root] 
level = WARN 
handlers = console 

[logger_app] 
level = WARN 
handlers = 
qualname = app 

[handler_console] 
class = StreamHandler 
args = (sys.stderr,)                               
85 level = NOTSET 
formatter = generic 

[formatter_generic] 
format = %(asctime)s %(levelname)-5.5s [%(name)s][%(threadName)s] %(message)s 

Respuesta

10

Puede agregar varios manejadores a la raíz, delimitados por comas. Si desea filtrar fuera del criterio normal "solo aceptar mensajes por encima de este nivel de registro" (es decir, solo mensajes de depuración), debe usar algo como un filtro de registro para aceptar/rechazar registros en función de sus niveles específicos: http://docs.python.org/library/logging.html#filter-objects

Su método actual de registro usando log = logging.getLogger(__name__) es perfectamente válido y una forma conveniente de organizar la jerarquía de registro.