好程序员Python 培训 分享 log 日志功能及设置方法 的详细介绍,首先引入Python 中有个 logging 模块可以完成相关信息的记录,在 debug 时用它往往事半功倍,下面一起跟随小编过来看看吧。
一、日志级别( 从低到高 ) :
DEBUG: 详细的信息 , 通常只出现在诊断问题上
INFO: 确认一切按预期运行
WARNING: 一个迹象表明 , 一些意想不到的事情发生了 , 或表明一些问题在不久的将来 ( 例如。磁盘空间低” ) 。这个软件还能按预期工作。
ERROR: 更严重的问题 , 软件没能执行一些功能
CRITICAL: 一个严重的错误 , 这表明程序本身可能无法继续运行
注:这5 个等级,也分别对应 5 种打日志的方法: debug 、 info 、 warning 、 error 、 critical 。默认的是 WARNING ,当在 WARNING 或之上时才被跟踪。
二、日志输出:显示到控制台或保存到文件中,可以灵活选用
# 这里为了简便,同时处理:输出控制台和保存到文件中
import logging
# 第一步,创建一个 logger
logger = logging.getLogger()
logger.setLevel(logging.INFO) # Log 等级总开关
# 第二步,创建一个 handler ,用于写入日志文件
logfile = './log.txt'
fh = logging.FileHandler(logfile, mode='a') # open 的打开模式这里可以进行参考
fh.setLevel(logging.DEBUG) # 输出到 file 的 log 等级的开关
# 第三步,再创建一个 handler ,用于输出到控制台
ch = logging.StreamHandler()
ch.setLevel(logging.WARNING) # 输出到 console 的 log 等级的开关
# 第四步,定义 handler 的输出格式
formatter = logging.Formatter("%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s")
fh.setFormatter(formatter)
ch.setFormatter(formatter)
# 第五步,将 logger 添加到 handler 里面
logger.addHandler(fh)
logger.addHandler(ch)
# 日志
logger.debug(' 这是 logger debug message')
logger.info(' 这是 logger info message')
logger.warning(' 这是 logger warning message')
logger.error(' 这是 logger error message')
logger.critical(' 这是 logger critical message')
三、日志格式说明
logging.basicConfig 函数中,可以指定日志的输出格式 format ,这个参数可以输出很多有用的信息,如下 :
%(levelno)s: 打印日志级别的数值
%(levelname)s: 打印日志级别名称
%(pathname)s: 打印当前执行程序的路径,其实就是 sys.argv[0]
%(filename)s: 打印当前执行程序名
%(funcName)s: 打印日志的当前函数
%(lineno)d: 打印日志的当前行号
%(asctime)s: 打印日志的时间
%(thread)d: 打印线程 ID
%(threadName)s: 打印线程名称
%(process)d: 打印进程 ID
%(message)s: 打印日志信息
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69913864/viewspace-2725237/ ,如需转载,请注明出处,否则将追究法律责任。