Aquí hay un par de respuestas realmente simples. El primero es simplemente comentar la declaración basicConfig(...)
. Eso tendrá el efecto de no configurar ninguno de los registradores, manejadores o formateadores, lo que significa que sus llamadas a debug(), info(), etc. serán efectivamente no operativas.
Otra respuesta simple es establecer el nivel de registro en la llamada basicConfig()
a algo más alto que DEBUG
. CRITICAL + 1
se aseguraría de que nunca vea un mensaje de registro.
Sin embargo, usted mencionó algo sobre cómo mover este código a producción, entonces lo que probablemente quiera hacer es proporcionar las opciones de línea de comando -q
y -v
(asumiendo que esta es una herramienta CLI). Mi enfoque habitual es comenzar en el nivel WARNING
, y para cada -q
avanzar hacia un registro más silencioso al aumentar el nivel del filtro. Por el contrario, para cada -v
, avance hacia un registro más detallado. Aquí hay un fragmento de código que hace exactamente eso.
from argparse import ArgumentParser
from logging import basicConfig, CRITICAL, ERROR, WARNING, INFO, DEBUG
parser = ArgumentParser()
parser.add_argument("-v", "--verbose", action="count")
parser.add_argument("-q", "--quiet", action="count")
arguments = parser.parse_args()
raw_log_level = 2 + (arguments.verbose or 0) - (arguments.quiet or 0)
if raw_log_level <= 0:
log_level = CRITICAL
elif raw_log_level == 1:
log_level = ERROR
elif raw_log_level == 2: # default
log_level = WARNING
elif raw_log_level == 3:
log_level = INFO
else:
log_level = DEBUG
basicConfig(level=log_level)
¿No es este registro básico 101? – delnan
@delman: si es 101, por favor, escriba una respuesta de práctica recomendada – Merlin
No estoy calificado para eso, estoy seguro de que la forma obvia de hacerlo, configurar el filtrado para rechazar todos los mensajes, se describe en cualquier registro decente tutorial. – delnan