yo estaba tratando de crear un atributo personalizado para iniciar la sesión (nombre de la clase de persona que llama, nombre del módulo, etc.) y quedé atrapado con una extraña excepción que me dice que la instancia LogRecord creado en el proceso no tenía los atributos necesarios Después de un poco de las pruebas de que terminé con esto:Python módulo de registro: registradores personalizados
import logging
class MyLogger(logging.getLoggerClass()):
value = None
logging.setLoggerClass(MyLogger)
loggers = [
logging.getLogger(),
logging.getLogger(""),
logging.getLogger("Name")
]
for logger in loggers:
print(isinstance(logger, MyLogger), hasattr(logger, "value"))
Esto aparentemente correcta pedazo de rendimientos de código:
False False
False False
True True
falla o función?
Gracias por su comentario, he editado la pregunta. pero creo que este comportamiento no es lo que cabría esperar que suceda. – Pastafarianist
¿Por qué no es lo que esperarías que sucediera? Es * precisamente * lo que la documentación dice que sucederá cuando no se especifique ningún nombre. –
Aunque esto es lo que dice la documentación, es contrario a la intuición. Al establecer una clase para los registradores, espero que _todos_loggers tengan esa clase, incluida la raíz y excluyendo las que ya se crearon. – Pastafarianist