logging库的使用!☃️
logging库的使用
1.Formatter
在Python中,logging.Formatter
是用于配置日志消息的格式的类。它允许你指定日志消息的输出格式。logging.Formatter
类有两个主要参数:
fmt
:这是一个字符串,用于指定日志消息的输出格式。可以使用格式化代码来包含日志记录中的各种信息,例如时间戳、日志级别、消息内容等。datefmt
:这是一个可选参数,用于指定时间戳的格式。如果日志消息中包含日期和时间信息,可以使用这个参数来指定输出的时间戳格式。
例如,使用logging.Formatter
类设置日志消息的格式的示例:
1 |
|
在这个示例中,fmt
参数指定了日志消息的输出格式,其中包含了时间戳、日志级别和消息内容;datefmt
参数指定了时间戳的格式为年-月-日 时:分:秒。
tips:
1.日志消息的输出格式:
%(asctime)-15s
: 这个部分表示日志记录的时间,格式为日志消息被创建的时间,通过asctime
属性提供。-15s
指定了一个最小宽度为 15 个字符的字段,并且左对齐填充空白。这意味着无论实际时间字符串的长度是多少,都会被填充到 15 个字符的宽度,并向左对齐。%(levelname)s
: 这个部分表示日志级别,即日志消息的重要性等级,例如 DEBUG、INFO、WARNING、ERROR 或 CRITICAL。%(message)s
: 这个部分表示实际的日志消息内容,即要记录的信息文本。
2.时间戳的格式:
%a
: 星期的缩写,例如 “Mon”, “Tue” 等。%d
: 日期,即月中的第几天(1-31)。%b
: 月份的缩写,例如 “Jan”, “Feb” 等。%Y
: 四位数的年份(例如:1998, 2004, 2022)。%H
: 小时(24小时制,00-23)。%M
: 分钟(00-59)。%S
: 秒(00-59)。
2.Level
2.1 日志级别
在 Python 的 logging 模块中,定义了以下几个日志级别(按照严重程度递增的顺序):
- DEBUG: 最详细的日志级别,用于提供关于程序运行状态的详细信息,通常用于调试目的。
- INFO: 提供程序运行状态的一般信息,表明程序正在正常工作。
- WARNING: 表示可能出现问题的情况,但不会影响程序的正常运行。
- ERROR: 表示已经发生了错误,但是不会导致程序停止运行。
- CRITICAL: 表示严重的错误,可能导致程序无法继续运行。
这些日志级别在 logging 模块中通过对应的方法来记录日志消息,分别是 debug()
, info()
, warning()
, error()
, 和 critical()
方法。当设置日志记录器的级别时,高于或等于该级别的日志消息将被记录,低于该级别的日志消息将被忽略。
2.2 setLevel
setLevel
是 Python logging 模块中用于设置日志记录器的日志级别的方法。通过这个方法,可以控制日志记录器记录日志消息的最低级别。
例如,如果你设置了一个日志记录器 logger
,你可以通过以下方式设置其记录的最低级别:
1 |
|
在这个例子中,setLevel(logging.DEBUG)
将会使得日志记录器 logger
记录所有级别的日志消息,包括 DEBUG、INFO、WARNING、ERROR 和 CRITICAL。如果你希望日志记录器只记录警告级别及以上的日志消息,可以将级别设置为 logging.WARNING
:
1 |
|
这样,DEBUG 和 INFO 级别的日志消息就不会被记录了。setLevel
方法设置的级别会应用到该日志记录器以及其所有子记录器上,除非子记录器单独设置了不同的级别。
3.Handler
3.1 FileHandler
logging.FileHandler
是 Python logging 模块中用于将日志消息记录到文件的处理器(handler)。它允许你指定一个文件名,将日志消息写入到该文件中。
以下是一个简单的示例,演示如何使用 FileHandler
将日志消息记录到文件中:
1 |
|
3.2 StreamHandler
logging.StreamHandler
是 Python logging 模块中用于将日志消息输出到流(例如标准输出流)的处理器(handler)。它允许你指定一个流对象,将日志消息写入到该流中,通常用于将日志消息输出到控制台或者其他标准输出设备上。
以下是一个简单的示例,演示如何使用 StreamHandler
将日志消息输出到控制台:
1 |
|
4.basicConfig
logging.basicConfig()
是 Python logging 模块中用于简化配置日志系统的方法。它允许你通过一次调用来设置日志系统的一些基本配置,包括日志级别、输出格式、输出目标等。
1 |
|
5.初始化
1 |
|