Python logging模块的基本使用、进阶使用详解 您所在的位置:网站首页 whatisknowntousall用法 Python logging模块的基本使用、进阶使用详解

Python logging模块的基本使用、进阶使用详解

2024-06-11 10:23| 来源: 网络整理| 查看: 265

文章目录 一、基本使用 1. 日志级别及对应函数 2. logging.basicConfig(**kwargs) 二、进阶使用

在python3中,内置了logging模块,用于进行日志相关的处理。 这篇文章将总结logging模块的基本用法及进阶用法

一、基本使用 1. 日志级别及对应函数

logging模块默认定义了6个日志级别:

import logging print(logging._nameToLevel) # {'CRITICAL': 50, 'FATAL': 50, 'ERROR': 40, 'WARN': 30, 'WARNING': 30, 'INFO': 20, 'DEBUG': 10, 'NOTSET': 0} print(logging._levelToName) # {50: 'CRITICAL', 40: 'ERROR', 30: 'WARNING', 20: 'INFO', 10: 'DEBUG', 0: 'NOTSET'}

日志优先级:CRIRICAL>ERROR>WARNING>INFO>DEBUG 当日志级别设置为某个级别时,则低于该级别的日志将不输出。如日志级别设置为INFO,则DEBUG级别的日志将不输出。

级别名称 级别数值 函数 使用场景 NOTSET 0 无 (确切来说它不算是日志级别)创建一个 logger 时,设置级别为 NOTSET (当 logger 是根 logger 时,将处理所有消息;当 logger 是非根 logger 时,所有消息会委派给父级) DEBUG 10 logging.debug(msg, *args, **kwargs) 通常在开发调试阶段使用,用来定位问题或显示程序运行细节 INFO 20 logging.info(msg, *args, **kwargs) 通常用来输出一般信息,或确认程序能正常工作 WARNING/WARN 30 logging.warning(msg, *args, **kwargs)logging.warn(msg, *args, **kwargs) 用来输出一些警告信息,但通常这些警告信息不影响程序正常运行 ERROR 40 logging.error(msg, *args, **kwargs) 用来输出程序的报错信息,表明程序的某些功能已不可用 CRITICAL/FATAL 50 logging.critical(msg, *args, **kwargs)logging.fatal(msg, *args, **kwargs) 用来输出严重的错误信息,表明程序已不能继续执行

示例:

import logging # 根日志器默认日志级别为WARNING,这里将其重置,以保证debug、info级别的日志也能输出 logging.basicConfig(level=logging.NOTSET) logging.debug("This is a %s message.",logging.getLevelName(logging.DEBUG)) logging.info("This is an %s message.",logging.getLevelName(logging.INFO)) logging.warn("This is a %s message.",logging.getLevelName(logging.WARN)) logging.warning("This is a %s message.",logging.getLevelName(logging.WARNING)) logging.error("This is an %s message.",logging.getLevelName(logging.ERROR)) logging.critical("This is a %s message.",logging.getLevelName(logging.CRITICAL)) logging.fatal("This is a %s message.",logging.getLevelName(logging.FATAL)) logging.log(logging.INFO,"This ia a message from logging.log().")

输出:

DEBUG:root:This is a DEBUG message. INFO:root:This is an INFO message. E:/Chen/python3/ExciseA/test.py:14: DeprecationWarning: The 'warn' function is deprecated, use 'warning' instead logging.warn("This is a %s message.",logging.getLevelName(logging.WARN)) WARNING:root:This is a WARNING message. WARNING:root:This is a WARNING message. ERROR:root:This is an ERROR message. CRITICAL:root:This is a CRITICAL message. CRITICAL:root:This is a CRITICAL message. INFO:root:This ia a message from logging.log().

解释:

输出中第3行提示logging.warn() 已遗弃,但这里为了兼容,仍可用(我这里用的是python 3.7.7版本); WARN和WARNING


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有