python多线程logger_[Python 多线程] logging模块、Logger类 (八)

本文详细介绍了Python内置的logging模块,包括日志记录级别、日志格式化字符串、基本配置方法及使用示例。logging模块是线程安全的,提供多种级别(如CRITICAL、ERROR、WARNING、INFO、DEBUG)用于控制日志信息的输出。通过配置,可以定制日志输出格式、日期格式,并将其输出到文件或控制台。Logger类支持层次结构,允许设置不同子Logger的级别,而Handler则负责控制日志信息的输出目的地。通过对Handler的设置,可以实现日志过滤和格式化等功能。
摘要由CSDN通过智能技术生成

logging模块:

标准库里面的logging模块,在前面学习线程安全时曾用来解决print被打断的问题,这里会介绍logging模块的功能。

logging模块是线程安全的,不需要客户做任何特殊的工作。它通过使用线程锁实现了这一点; 有一个锁来序列化访问模块的共享数据,每个处理程序还创建一个锁来序列化访问其底层 I/O。

日志记录级别:

级别数值

CRITICAL

50

ERROR

40

WARNING

30,默认

INFO

20

DEBUG

10

NOTSET

0

定义的记录级别越低,信息越多,级别越高,信息越少。

日志记录格式化字符串:

属性名格式描述

asctime

%(asctime)s

易读的时间格式: 默认情况下是‘2003-07-08 16:49:45,896‘的形式(逗号之后的数字是毫秒部分的时间)

filename

%(filename)s

路径名的文件名部分。

funcName

%(funcName)s

日志调用所在的函数名

levelname

%(levelname)s

消息的级别名称(‘DEBUG‘, ‘INFO‘, ‘WARNING‘, ‘ERROR‘, ‘CRITICAL‘).

levelno

%(levelno)s

对应数字格式的日志级别 (DEBUG, INFO, WARNING, ERROR,CRITICAL).

lineno

%(lineno)d

发出日志记录调用的源码行号 (如果可用)。

module

%(module)s

所在的模块名(如test6.py模块则记录test6)

message

%(message)s

记录的信息

name

%(name)s

调用的logger记录器的名称

process

%(process)d

进程ID

processName

%(processName)s

进程名

thread

%(thread)d

线程ID

threadName

%(threadName)s

线程名

使用basicConfig方法配置logging记录格式:

格式描述

filename

指定使用指定的文件名而不是StreamHandler创建FileHandler。

filemode

指定打开文件的模式,如果指定了filename(如果文件模式未指定,则默认为‘a‘)。

format

为处理程序使用指定的格式字符串。

datefmt

使用指定的日期/时间格式。

level

将根记录器级别设置为指定的级别。

handlers

如果指定,这应该是一个已经创建的处理程序的迭代器添加到根记录器。任何尚未设置格式化程序的处理程序都将被分配在此函数中创建的默认格式化程序。

举例:

import threading

import logging

FORMAT = "%(asctime)s %(thread)d %(message)s"

logging.basicConfig(level=logging.I

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值