Prefacio
Encontré este código
# LOGGING_NAMESPACE = 'diora'
# Create logger.
logger = logging.getLogger(LOGGING_NAMESPACE)
# NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL
logger.setLevel(logging.INFO)
# Create file handler. # 文件日志
fh = logging.FileHandler(log_file)
fh.setLevel(logging.INFO)
# Also log to console. # 控制台日志
ch = logging.StreamHandler()
ch.setLevel(logging.INFO)
# create formatter and add it to the handlers
# %(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”
# %(levelname)s 文本形式的日志级别
# %(message)s 用户输出的消息
formatter = logging.Formatter('%(asctime)s [%(levelname)s] %(message)s')
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# add the handlers to the logger
logger.addHandler(fh)
logger.addHandler(ch)
# HACK: Weird fix that counteracts other libraries (i.e. allennlp) modifying
# the global logger.
if len(logger.parent.handlers) > 0:
logger.parent.handlers.pop()
el registrador debe ser una variable global
para resumir
La forma más sencilla de crear un registrador son los siguientes cuatro pasos:
- logger = logging.getLogger (nombre del proyecto); logger.setLevel ()
- file_handler = logging.FileHandler (archivo de registro); file_handler.setLevel ()
- manipulador_consola = logging.StreamHandler (); manipulador_consola.setLevel ()
- formatter = logging.Formatter ('% (asctime) s [% (levelname) s]% (message) s')
- file_handler.setFormatter (); console_handler.setFormatter ()
- logger.addHandler (fh); logger.addHandler (ch)