módulo de registro de aprendizagem python

módulo de registro

  • Função: Fornecer um meio flexível para que os aplicativos registrem erros de tempo, avisos e informações de depuração. Simplificando, ele fornece um nível diferenciado de arquivos de log de execução do aplicativo para o processo de execução de todo o aplicativo .
  • Instruções:
    • registro de importação
    • A configuração básica de todo o módulo (objeto): logging.basicConfig ()
    • Crie um objeto logger:
      • 创建 : logger = logging.getLogger ( name )
      • Convenção de nomenclatura: o nome deve ser o nome do aplicativo, tanto quanto possível
      • Envie mensagens de registro para o console :
        • logger.info (“Iniciar registro de impressão”)
        • logger.debug (“Faça algo”)
        • logger.warning (“Algo pode falhar.”)
        • logger.error (“Concluir”)
        • logger.critical ('hah')
    • Filtrar por mensagens de registro
      • logger.setLevel (level): configuração de nível
      • logger.isEnabledFor (nível): Determine se deseja processar mensagens deste nível
      • Adicionar filtro, remover filtro; filtro de objeto, o filtro embutido é Filtro (o filtro personalizado pode ser herdado por classe).
      • Gravador hierárquico e controle de propagação de mensagem (propagação padrão)
    • Processador de mensagens de log
      • Módulo de processador integrado: consulte o link abaixo para obter detalhes
      • Configuração do processador: configuração de nível, adição e remoção de processadores
      • Limpeza e desligamento do processador
    • Formatação de mensagens de log
      • Criar objeto Formatter
      • Adicione o objeto ao processador
      • Adicione o processador ao registro de mensagens
    • Como adicionar informações adicionais contextuais
      • Adiciona automaticamente extra = () após a mensagem do método de registro de envio
      • Use o wrapper logAdapter. Recomenda-se adicionar este método de forma flexível e automática
    • Função útil
      • Veja a conexão principal:

Código

'''
logging模块作用:为应用程序提供灵活的手段记录事件、错误、警告、调试信息;
对信息进行收集、筛选、写入文件,发送系统日志,甚至可以同步发送给远程计算机
'''

'''
日志记录级别:
CRUTICAL、ERROR、WARNING、INFO、DEBUG、NOTSET
'''

# 网上案列____发出日志消息
import logging
# 基本配置语句
logging.basicConfig(level = logging.INFO,format = '%(asctime)s - %(name)s - %(levelname)s - %(message)s')
#
logger = logging.getLogger('a')
logger.info("Start print log")
logger.debug("Do something")
logger.warning("Something maybe fail.")
logger.info("Finish")




# 案列1___发出日志消息
import Hello
import logging
# 下面语句为特殊对象基本配置语句,接受关键字参数,根记录器。具体参数见书P287
logging.basicConfig(
    filename= 'app.log',
    format= '%(levelname)-10s %(asctime)s %(message)s',
    level= logging.INFO
)
log = logging.getLogger('app')
# 关键字对,字典插入尝试
parms = {
    
    
    'host' : 'www.python.org',
    'port' : 80
}
log.critical("Can't connect to %(host)s at port %(port)d", parms)
'''
其它发送日志信息的方法:看书
log.exception()
log.log()
log.findCaller()
'''
# 得到一个logger对象
logger = logging.getLogger(__name__)
# 设置logger内置对象级别
logger.setLevel(level = logging.INFO)
# 调用内置处理器,将消息日志写入文件,只有处理器不能运行
handler = logging.FileHandler("app.log")
# 为处理器设置日志消息级别
handler.setLevel(logging.INFO)
# 日志消息格式化信息
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
# 设置处理器格式化信息
handler.setFormatter(formatter)
# 为对象增加处理器
logger.addHandler(handler)

logger.info("Start print log")
logger.debug("Do something")
logger.warning("Something maybe fail.")
logger.info("Finish")




logger = logging.getLogger(__name__)
logger.setLevel(level = logging.INFO)
handler = logging.FileHandler("log.txt")
handler.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
handler.setFormatter(formatter)

console = logging.StreamHandler()
console.setLevel(logging.INFO)

logger.addHandler(handler)
logger.addHandler(console)

logger.info("Start print log2")
logger.debug("Do something")
logger.warning("Something maybe fail.")
logger.info("Finish")




from logging.handlers import RotatingFileHandler
logger = logging.getLogger(__name__)
logger.setLevel(level = logging.INFO)
#定义一个RotatingFileHandler,最多备份3个日志文件,每个日志文件最大1K
rHandler = RotatingFileHandler("rp.txt",maxBytes = 1*1024,backupCount = 3)
rHandler.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
rHandler.setFormatter(formatter)

console = logging.StreamHandler()
console.setLevel(logging.INFO)
console.setFormatter(formatter)

logger.addHandler(rHandler)
logger.addHandler(console)

logger.info("Start print log")
logger.debug("Do something")
logger.warning("Something maybe fail.")
logger.info("Finish")

Registro do console

Insira a descrição da imagem aqui

Registros do gerenciador de arquivos

Insira a descrição da imagem aqui

Ganhos de aprendizagem

Domine a criação de objetos de log de mensagens, formatação de arquivos de mensagens de log de mensagens, filtros e processadores. Um dos aplicativos e o mecanismo de tratamento de exceções completam o prompt do console em conjunto: a seção de prompt de mensagem em vermelho no pycharm.

Estudo aprofundado de links de registro:

Encontre alguns grandes blogueiros que aprendem python e aprendizagem profunda:

Acho que você gosta

Origin blog.csdn.net/Chaoyuan_Jam/article/details/82896263
Recomendado
Clasificación