python 日志分析,python日志记录
说到日记,我们可以认为是现实生活中的日记。日记是我们记录平时生活点点滴滴的一种方式,日记可以看作是一个程序的日记,用来记录一个程序的行为。本文将详细介绍Python中的日志模块,以供参考。
00-1010日志的作用日志模块的使用演示了一个小案例OK。今天,我们来学习一下python中的日志模块。日志模块也是我们未来开发工作中使用率较高的模块之一。接下来,我们来看看今天要具体学习的日志模块中的那些内容。
目录
说到日记,我们可以认为是现实生活中的日记。日记是我们记录平时生活点点滴滴的一种方式,而日记可以看作是一个程序的日记,用来记录一个程序的行为。一般来说,我们可以通过日记记录一个节目的一些重要信息。
比如,怎么了?报错的原因是什么?这时候通过查看日志就可以知道哪里出了问题,是什么原因造成的,可以帮助我们快速检查错误,修复bug。
其实不仅仅是错误的信息,我们还可以通过日志记录程序的运行状态。
日志的作用
现在日志的作用明确了,我们可以在平时的日志记录过程中,根据自己不同的业务需求,记录不同级别的日志。
Debug:可以帮助我们在平时的开发过程中检查一些输出信息是否正确。可以替代我们平时使用的print()函数。
Info:表示一般的消息信息,只是为了记录一些程序的行为。比如程序执行到某个位置,做一些简单的记录。
警告:这个级别是一个警告。一般来说,程序不会出错,但可能会有一些潜在的风险。
错误:一般对应业务存在重大问题。例如,异常或业务逻辑不应该在特定情况下执行。我们都可能记录错误。
Critical:比error更严重的级别,但一般来说,error级别已经很严重了,所以很少用critical。
日志的等级
其实日志模块用起来挺复杂的,但是作为初学者,我们只要学会使用logging.basicConfig就可以满足我们最基本的日志功能了。
接下来,我们来看看logging.basicConfig需要传入哪些参数,以及如何使用它们。
角色名称示例:最低级别的lever log output lever=logging。DEBUGformat日志输出格式如下所示:具体格式文件名存储位置filename= d ://debug . log Filemode输入模式Filemode="w "关于lever,LeServer的作用是指示最低的日志级别记录。杠杆=测井。上述文本中的调试意味着记录所有日志级别,包括调试级别。
具体格式如下:
格式含义%(levername)s日志级别名称%(pathname)s当前正在执行的程序的路径(即脚本所在的位置)%(filename)s正在执行的脚本程序的名称%(lineno)d日志的当前行号%(asctime)s打印日志的时间%(message)日志的常用方案fromat获取日志信息:from at= %(asctime)s %(filename)s[line 3360%(lineno)d]%(lever name)s %(message)s
logging 模块的使用
进口
port logging
logging.basicConfig( # 针对 basicConfig 进行配置(basicConfig 其实就是对 logging 模块进行动态的调整,之后可以直接使用)
level=logging.INFO, # INFO 等级以下的日志不会被记录
format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s, # 日志输出格式
filename=back.log, # 日志存放路径(存放在当前相对路径)
filemode=w, # 输入模式;如果当前我们文件已经存在,可以使用 a 模式替代 w 模式
# 与文件写入的模式相似,w 模式为没有文件时创建文件;a 模式为追加内容写入日志文件
)
logging.debug(这是一条 debug 信息)
logging.info(这是一条 日志记录 信息)
logging.warning(这是一条 警告 信息)
logging.error(这是一条 重大的错误 信息)
# >>> 执行结果如下图
上面我们使用的 filemode 模式是 'w' 模式,现在我们改为 'a' 模式,尝试将日志追加进入 back.log 文件。
import logginglogging.basicConfig( # 针对 basicConfig 进行配置(basicConfig 其实就是对 logging 模块进行动态的调整,之后可以直接使用)
level=logging.INFO, # INFO 等级以下的日志不会被记录
format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s, # 日志输出格式
filename=back.log, # 日志存放路径(存放在当前相对路径)
filemode=a, # 输入模式;如果当前我们文件已经存在,可以使用 a 模式替代 w 模式
# 与文件写入的模式相似,w 模式为没有文件时创建文件;a 模式为追加内容写入日志文件
)
logging.debug(这是一条 debug 信息 ---> \a\ 模式第二次写入)
logging.info(这是一条 日志记录 信息 ---> \a\ 模式第二次写入)
logging.warning(这是一条 警告 信息 ---> \a\ 模式第二次写入)
logging.error(这是一条 重大的错误 信息 ---> \a\ 模式第二次写入)
# >>> 执行结果如下图
这里关于文件是否存在,使用 ‘w’ 模式还是 ‘a’ 模式,我们完全可以通过 os 模块进行路径文件的判断,所以我们针对上文的脚本再进行优化一下。
import loggingimport os
def init_log(path):
if os.path.exists(path):
mode = a
else:
mode = w
logging.basicConfig( # 针对 basicConfig 进行配置(basicConfig 其实就是对 logging 模块进行动态的调整,之后可以直接使用)
level=logging.INFO, # INFO 等级以下的日志不会被记录
format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s, # 日志输出格式
filename=back.log, # 日志存放路径(存放在当前相对路径)
filemode=mode, # 输入模式;如果当前我们文件已经存在,可以使用 a 模式替代 w 模式
# 与文件写入的模式相似,w 模式为没有文件时创建文件;a 模式为追加内容写入日志文件
)
return logging
current_path = os.getcwd()
path = os.path.join(current_path, back.log)
log = init_log(path) # 初始化返回的 init_log() 函数 , 其实就是 return logging
log.debug(这是一条 debug 信息 ---> 第三次写入)
log.info(这是一条 日志记录 信息 ---> 第三次写入)
log.warning(这是一条 警告 信息 ---> 第三次写入)
log.error(这是一条 重大的错误 信息 ---> 第三次写入)
# >>> 执行结果如下图:
到此这篇关于Python学习之日志模块详解的文章就介绍到这了,更多相关Python日志模块内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。