python日志添加功能,主要记录程序运行中的日志,统一收集并分析

Posted fyly

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python日志添加功能,主要记录程序运行中的日志,统一收集并分析相关的知识,希望对你有一定的参考价值。

转自:https://www.cnblogs.com/jsondai/p/9663633.html

一、日志的级别

debug(调试信息) info() warning(警告信息)error(错误信息) critical(致命信息)  从左往右越来越严重
日志等级(level)描述
DEBUG 最详细的日志信息,典型应用场景是 问题诊断
INFO 信息详细程度仅次于DEBUG,通常只记录关键节点信息,用于确认一切都是按照我们预期的那样进行工作
WARNING 当某些不期望的事情发生时记录的信息(如,磁盘可用空间较低),但是此时应用程序还是正常运行的
ERROR 由于一个更严重的问题导致某些功能不能正常运行时记录的信息
CRITICAL 当发生严重错误,导致应用程序不能继续运行时记录的信息
注意,系统只显示warning(警告信息)级别以上的日志,例如我们输入一下代码:
import logging
logging.debug(‘这是个debug级别的信息‘)#输出时被过滤掉了
logging.info(‘这是个info级别的信息‘)#输出时被过滤掉了
logging.warning(‘这是个warning级别的信息‘)
logging.error(‘这是个error级别的信息‘)
logging.critical(‘这是个critical级别的信息‘)

控制台输出

技术图片

代码写的是5行数据,实际在控制台只有3行,那是因为系统默认输出 warning(警告)及以上的日志。  

如果需要全部展示,需要调用

logging.basicConfig(level=logging.DEBUG) #basicConfig基础配置 可以输入关键字参数,level是等级的意思 logging.DEBUG级别必须大写  如果是调用函数就需要小写

在level那里展示指定级别。 加上 logging.basicConfig 之后运行,结果如下,能全部展示出来了

技术图片

 

二、日志格式化输出

 将日志输出到控制台或者文件中

fp = logging.FileHandler(‘a.txt‘, encoding=‘utf-8‘)   #将日志记录到文件中
fs = logging.StreamHandler()     #将日志输出到控制台

放在handler中进行调用 

技术图片
import logging
LOG_FORMAT = "%(asctime)s - %(levelname)s - %(message)s"    # 日志格式化输出
DATE_FORMAT = "%m/%d/%Y %H:%M:%S %p"                        # 日期格式
fp = logging.FileHandler(‘a.txt‘, encoding=‘utf-8‘)
fs = logging.StreamHandler()
logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT, datefmt=DATE_FORMAT, handlers=[fp, fs])    # 调用


logging.debug("This is a debug log.哈哈")
logging.info("This is a info log.")
logging.warning("This is a warning log.")
logging.error("This is a error log.")
logging.critical("This is a critical log.")
技术图片

控制台和文件中就都能展示日志了

 

以上是关于python日志添加功能,主要记录程序运行中的日志,统一收集并分析的主要内容,如果未能解决你的问题,请参考以下文章

python日志模块-logging

python之三方库日志

在 C++ 中的文件(日志文件)中添加新行

python日志处理

登录python的最佳实践

如何在 Python Django 中运行单元测试时禁用日志记录?