首页 > 技术文章 > Python之日志处理(logging模块)

wangshx666 2020-04-22 17:19 原文

1、日志的作用可以简单总结为以下3点:

程序调试
了解软件程序运行情况,是否正常
软件程序运行故障分析与问题定位

2、日志的等级

DEBUG:最详细的日志信息,典型应用场景是 问题诊断
INFO:信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作
WARNING:当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的
ERROR:由于一个更严重的问题导致某些功能不能正常运行时记录的信息
CRITICAL:当发生严重错误,导致应用程序不能继续运行时记录的信息

开发应用程序或部署开发环境时,可以使用DEBUG或INFO级别的日志获取尽可能详细的日志信息来进行开发或部署调试;应用上线或部署生产环境时,应该使用WARNING或ERROR或CRITICAL级别的日志来降低机器的I/O压力和提高获取错误日志信息的效率。日志级别的指定通常都是在应用程序的配置文件中进行指定的

3、日志字段信息

事件发生时间
事件发生位置
事件的严重程度--日志级别
事件内容

4、logging模块的使用方式介绍

函数说明
logging.debug(msg, *args, **kwargs)创建一条严重级别为DEBUG的日志记录
logging.info(msg, *args, **kwargs)创建一条严重级别为INFO的日志记录
logging.warning(msg, *args, **kwargs)创建一条严重级别为WARNING的日志记录
logging.error(msg, *args, **kwargs)创建一条严重级别为ERROR的日志记录
logging.critical(msg, *args, **kwargs)创建一条严重级别为CRITICAL的日志记录
logging.log(level, *args, **kwargs)创建一条严重级别为level的日志记录

logging.basicConfig(kwargs)对root logger进行一次性配置
其中logging.basicConfig(
kwargs)函数用于指定“要记录的日志级别”、“日志格式”、“日志输出位置”、“日志文件的打开模式”等信息,其他几个都是用于记录各个级别日志的函数。

5、 logging.basicConfig(**kwargs)函数说明

filename指定日志输出目标文件的文件名,指定该设置项后日志信心就不会被输出到控制台了
filemode指定日志文件的打开模式,默认为'a'。需要注意的是,该选项要在filename指定时才有效
format指定日志格式字符串,即指定日志输出时所包含的字段信息以及它们的顺序。logging模块定义的格式字段下面会列出。
datefmt指定日期/时间格式。需要注意的是,该选项要在format中包含时间字段%(asctime)s时才有效
level指定日志器的日志级别

参考文档:https://www.jianshu.com/p/319c2f5319df

推荐阅读