módulo de registro python

Conhecimento relacionado à extração de madeira

Nível de registro cenas a serem usadas
DEPURAR Informações detalhadas, geralmente usadas apenas ao depurar problemas
INFO Prove que as coisas estão funcionando conforme o esperado
AVISO Alguns avisos de tempo inesperados ou avisos de problemas que podem ocorrer no futuro
ERRO Devido a problemas mais sérios, o software não pode mais executar algumas funções
CRÍTICO Um erro grave indica que o software não pode mais ser executado

Nota:
Nível de gravidade: CRITICAL> ERROR> WARNING> INFO> DEBUG
Nível padrão: WARNING
Defina o nível de log de saída: Se o nível de log for WARNING, o log só pode imprimir WARNING e acima do conteúdo do log, e o nível de gravidade é menor que WARING é a
geração padrão que não é impressa. O nível do logger root é logging.WARNING, e aqueles abaixo deste nível não serão impressos
.

O objeto Formatter define as regras finais, estrutura e conteúdo das informações de log

parâmetro Conteúdo de saída
% (name) s Nome do madeireiro
% (levelno) s Nível de registro digital
% (mensagem) s Informações de saída do usuário
% (levelname) s Nível de registro em formato de texto
% (nome do caminho) s O nome do caminho completo do módulo que chama a função de saída do log, ele não pode
% (nome do arquivo) s O nome do arquivo do módulo que chama a função de saída de log
% (módulo) s O nome do módulo que chama a função de saída de log
% (lineno) d A linha de código onde a instrução que chama a função de saída do log está localizada
% (asctime) s A hora atual como uma string. O formato padrão é "2003-07-08 16: 49: 45.896". Milissegundos após a vírgula
% (discussão) d ID do tópico, não pode
% (threadName) s Nome do tópico. Talvez não

logando no console

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,低于该级别的就不输出了

registrando a saída para o arquivo

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 log simples

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()

Acho que você gosta

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