Python实用模块系列——Logging日志

97 阅读2分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

前言

日志的作用是可以保存程序运行的日志,以便在排查程序崩溃的具体原因来定位bug进行抢救。logging可以灵活帮助我们记录程序运行过程的一些信息。

一、logging.basicConfig()

# define: 顾名思义,basciConfig是用来设置一些日志的的配置参数
# 参数介绍:
# filename: 指定保存日志的文件名
# filemode: 指定打开文件的模式,默认为'a',即追加模式,也可以设置为'w', 即每次写日志的时候会覆盖之前的日志。
# format: 指定输出的格式和内容,详见三
# datefmt: 指定时间格式
# level:指定日志的记录级别,默认为logging.WARNING, 详见第二点
# eg:经常使用的参数是filename、level、format,其他一般采取默认。
import logging
logging.basicConfig(filename='Hello.log', level=logging.ERROR, format = '[%(asctime)s]-%(thread)d-%(levelname)s(%(name)s): %(message)s - %(filename)s:%(lineno)d')

二、日志等级

# 日志由低到高
# DEBUG: 记录最详细的日志信息。调试bug时使用。
# INFO: 记录一些设置的关键节点信息。正常操作信息。
# WARNING: 警告,记录一些以后可能会出错的信息,但是现在可以正常运行。
# ERROR: 错误,记录由于更严重的问题而导致软件无法执行某些功能时的信息。
# CRITICAL: 严重,记录发生严重错误,程序本身可能无法继续运行时的信息。即致命错误信息。
# 默认的等级是WARNING,即warning级别及以上的日志会输出。
# eg:
import logging

logging.info('这是一个info级别的日志信息')
logging.error('这是一个error级别的日志信息')

三、输出格式参数format。


# 日志级别:%(levelno)s
# 日志级别名称:%(levelname)s
# 当前程序的路径:%(pathname)s
# 当前程序名称:%(filename)s
# 日志所属的当前函数:%(fileName)s
# 日志的时间:%(asctime)s
# 线程的名称:%(threadName)s
# 日志的信息:%(message)s
# 日志的当前行号:%(lineno)d
# 线程的ID:%(thread)d
# 进程的ID:%(process)d

format = '[%(asctime)s]-%(thread)d-%(levelname)s(%(name)s): %(message)s - %(filename)s:%(lineno)d'