Python中logging模块学习
什么是logging模块?
logging模块是python提供的用于记录程序日志的模块
为什么需要logging模块?
我们完全可以自己打开文件然后将日志写进去,但是这种方法需要重复操作并且没有任何技术含量,所以python帮我们将日志封装成了logging模块,这样我们在记录日志时,只需要简单的调用接口即可!
日志级别
在开始记录日志前,还需要明确日志的级别。
随着程序的使用和时间的推移,会产生大量的日志,那么如何在大量日志中快速找到需要的信息成为了问题,那么解决方法就是将日志划分级别。
logging模块将日志划分为了5个级别,从低到高分别是:
- logging.debug—调试信息,细粒度,比较重要的方法需要查看变量的详细信息或者详细运行情况时开启。
- logging.info—常规信息,粗粒度,比如了解某个函数是否运行可以使用INFO。
- logging.warning—
- logging.error—
- logging.critical—
本质上他们是使用数字来表示级别的,从低到高分别是10,20,30,40,50.
logging模块的基础使用
一、最简单的使用方式(默认配置)
# 导入模块
import logging
# 输出日志
logging.debug("debug message")
logging.info("info messange")
logging.warning("warning message")
logging.error("error message")
logging.critical("critical message")
# 控制台输出为:
# WARNING:warning
# ERROR:error
# CRITICAL:critical
我们会发现debug和info的信息都没有输出,这是因为它们的级别不够,默认情况下logging的最低显示级别为warning,对应的数值为30.
以上是最简单的日志输出方式,但并不是最有用的,大多数情况下我们需要自己配置logging的行为。
二、基础使用方式(简单地自定义配置)
1、使用方法:
import logging
logging.basicConfig()
"""
可用参数:
filename: 设置日志存储的文件名
filemode: 设置日志文件的打开方式,默认为追加"a",可以修改为重写"w"
format: 指定日志显示格式
datefmt: 指定日期时间格式
level: 设置日志的级别
"""
logging.basicConfig(
filename = "output.log",
filemode = "a",
datefmt = "%Y-%m-%d %H:%M:%S %p",
format = "line:%(lineno)d-%(asctime)s-[%(levelname)s]-funtion:%(funcName)s: %(message)s",
level = logging.DEBUG
)
说明:logging.basicConfig()是一个一次性的简单配置工具,也就是说旨在第一次调用时该函数会起作用,后续调用不会起作用,作用更不会累加。
2、格式化全部可用名称:
%(name)s: Logger的名字,并非用户名,详细