módulo de registro de Python

Conocimientos relacionados con la tala

Nivel de registro escenas que se utilizarán
DEPURAR Información detallada, generalmente solo se usa al depurar problemas
INFO Demuestre que las cosas están funcionando como se esperaba
ADVERTENCIA Algunos avisos de tiempo inesperados o avisos de problemas que pueden ocurrir en el futuro
ERROR Debido a problemas más graves, el software ya no puede realizar algunas funciones
CRÍTICO Un error grave indica que el software ya no se puede ejecutar

Nota:
Nivel de gravedad: CRÍTICO> ERROR> ADVERTENCIA> INFORMACIÓN> DEPURACIÓN
Nivel predeterminado: ADVERTENCIA
Establezca el nivel de registro de salida: si el nivel de registro es ADVERTENCIA, el registro solo puede imprimir ADVERTENCIA y el contenido del registro superior, y el nivel de gravedad es menor que ADVERTENCIA es la
generación predeterminada que no se imprime.
El nivel del registrador raíz está registrando. ADVERTENCIA, y los que están por debajo de este nivel no se mostrarán.

El objeto Formatter establece las reglas finales, la estructura y el contenido de la información del registro.

parámetro Contenido de salida
% (nombre) s Nombre del registrador
% (levelno) s Nivel de registro digital
% (mensaje) s Información de salida del usuario
% (nombre de nivel) s Nivel de registro en forma de texto
% (nombre de ruta) s El nombre de ruta completo del módulo que llama a la función de salida del registro, no puede
% (nombre de archivo) s El nombre de archivo del módulo que llama a la función de salida del registro
% (módulo) s El nombre del módulo que llama a la función de salida del registro.
% (lineno) d La línea de código donde se encuentra la instrucción que llama a la función de salida del registro.
% (asctime) s La hora actual como una cadena. El formato predeterminado es "2003-07-08 16: 49: 45,896". Milisegundos después de la coma
% (hilo) d ID de hilo, puede que no
% (threadName) s Nombre del hilo. Tal vez no

iniciando sesión en la consola

import logging
logging.debug('it is debug')
logging.info('it is info')
logging.warning('it is waring')
logging.error('it is error')
logging.critical('it is critical')
输出只有:
WARNING:root:it is waring
ERROR:root:it is error
CRITICAL:root:it is critical
注释: 默认生成的root logger的level是logging.WARNING,低于该级别的就不输出了

registro de salida en archivo

import logging
#创建一个logger
logger = logging.getLogger()
#设置log等级开关
logger.setLevel(logging.INFO)
logfile = 'recorder.log'
fh = logging.FileHandler(logfile, mode='w', encoding='utf-8')
#设置输出格式
fh.setLevel(logging.DEBUG)
#设置格式
formatter = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
fh.setFormatter(formatter)
#将logger添加到hander里面
logger.addHandler(fh)
logger.debug('this is a logger debug message')
logger.info('this is a logger info message')
logger.warning('this is a logger warning message')
logger.error('this is a logger error message')
logger.critical('this is a logger critical message')

Decorador de troncos simple

import logging
import json

def create_log():
    logger = logging.getLogger()
    # 设置log等级开关
    logger.setLevel(logging.INFO)
    logfile = 'warrp.log'
    fh = logging.FileHandler(logfile, mode='w', encoding='utf-8')
    # 设置输出格式
    fh.setLevel(logging.DEBUG)
    # 设置格式
    formatter = logging.Formatter('%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s')
    fh.setFormatter(formatter)
    # 将logger添加到hander里面
    logger.addHandler(fh)
    return logger


def write_log(func):
    def wrapper():
        result = func()
        logger = create_log()
        logger.info(json.dumps(result))
        return result
    return wrapper

@write_log
def func():
    return {
    
    'name': 'hh', 'age': 20}

if __name__ == '__main__':
	func()

Supongo que te gusta

Origin blog.csdn.net/xxy_yang/article/details/107913769
Recomendado
Clasificación