Python中如何进行日志打印

一、日志介绍
1、日志级别:日志的优先级、重要性或者严重程度
2、日志的作用:调试程序,跟踪定位bug,分析用户行为与数据统计
3、常见的日志级别(从小级别到大级别排序):
        debug:调试级别,打印非常详细的日志信息,通常用于代码调试
        info:信息级别,打印一般的日志信息,突出强调程序的运行过程
        warming:警告级别,打印警告信息,表明可能出现潜在的错误
        error:错误级别,打印错误异常信息,该级别的错误可能导致程序无法运行
        critical:严重错误级别,这表明系统可能无法继续运行
4、当指定日志级别后,程序会记录所有日志级别大于或者等于指定级别的东西
5、日志的格式:
        %(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 打印日志的信息

二、logging用法

基本用法:

# 导库,一个标准的第三方库用于日志的打印
import logging
# 基本用法
logging.debug('这是一条调试信息')
logging.info('这是日志信息')
logging.warning('打印警告')
logging.error('这是一条错误信息')
logging.critical('这是一条严重错误信息')

输出信息如下:

WARNING:root:打印警告
ERROR:root:这是一条错误信息
CRITICAL:root:这是一条严重错误信息

上述代码中我们打印了五种日志,但是输出结果只有三种,这是因为指定日志级别后,程序会记录大于或者等于指定级别的日志,下面我们来指定打印debug级别的日志:

# 导包
import logging

# 设置日志级别 打印日志
logging.basicConfig(level=logging.DEBUG)
# 基本用法
logging.debug('这是一条调试信息')
logging.info('这是日志信息')
logging.warning('打印警告')
logging.error('这是一条错误信息')
logging.critical('这是一条严重错误信息')

输出结果如下:

DEBUG:root:这是一条调试信息
INFO:root:这是日志信息
WARNING:root:打印警告
ERROR:root:这是一条错误信息
CRITICAL:root:这是一条严重错误信息

我们还可以指定日志的格式,演示输出时的日志格式化:

import logging
fm = "%(asctime)s %(levelname)s [%(name)s] [%(filename)s] [%(funcName)s:%(lineno)d]"
# 设置日志级别 打印日志
logging.basicConfig(level=logging.DEBUG,format=fm)
# 基本用法
logging.debug('这是一条调试信息')
logging.info('这是日志信息')
logging.warning('打印警告')
logging.error('这是一条错误信息')
logging.critical('这是一条严重错误信息')

 输出信息如下:

2023-07-17 22:48:59,062 DEBUG [root] [logger.py] [<module>:36]
2023-07-17 22:48:59,063 INFO [root] [logger.py] [<module>:37]
2023-07-17 22:48:59,063 WARNING [root] [logger.py] [<module>:38]
2023-07-17 22:48:59,063 ERROR [root] [logger.py] [<module>:39]
2023-07-17 22:48:59,063 CRITICAL [root] [logger.py] [<module>:40]

我们还可以输出日志到指定的文件:

# 导库,一个标准的第三方库用于日志的打印
import logging


fm = "%(asctime)s %(levelname)s [%(name)s] [%(filename)s] [%(funcName)s:%(lineno)d]"
# 设置日志级别 打印日志 设置日志打印的文件路径
logging.basicConfig(level=logging.DEBUG,format=fm,filename="testlog//log01.log")
# 基本用法
logging.debug('这是一条调试信息')
logging.info('这是日志信息')
logging.warning('打印警告')
logging.error('这是一条错误信息')
logging.critical('这是一条严重错误信息')

指定了日志打印的文件后点击运行,打开testlog文件夹下的log01文件,能发现已经打印了:

物联沃分享整理
物联沃-IOTWORD物联网 » Python中如何进行日志打印

发表评论