Logging模块的使用

xiaoxiao2025-08-13  30

Logging模块,针对日志操作的模块

Logging模块可替代print函数的功能,并能将标准输出输入到日志文件保存起来

且利用Logging模块可部分替代debug功能

Logging模块中有6个级别,分别是

NOTSET0DEBUG10INFO20WARNING30ERROR40CRITICAL50

这些级别的用处,先将自己的日志定一个级别,

Logging模块发出的信息级别高于定义的级别,将在屏幕显示出来;

若低于定义的级别则略过;

若未定义级别,则默认级别是WARNING

 

Logging最简单的方法就是logging.basicConfig

logging.basicConfig使用方法为:logging.basicConfig([**kwargs])

这个函数的参数有:

filename:用指定文件名创建FileHandler

filemode:文件打开方式。默认值‘a’,可以改为‘w’

format:指定Handler使用日志显示格式

detafmt:指定日期时间格式

level:设置rootlogger的日志级别

stream:用指定的stream创建StreamHandler。若同时有filename和stream两个参数,忽略stream参数

 

fomat参数能用到的格式化串:

%(name)s:Logger的名字

%(levelno)s:数字形式的日志级别

%(levelname)s:文件形式的日志级别

%(pathname)s:调用日志输出的模块的完整路径,可能没有

%(filename)s:调用日志输出函数的模块的文件名

%(modules)s:调用日志输出函数的模块名

%(funcName)s:调用日志输出函数的函数名

%(lineno)d:调用日志输出函数的语句所在代码行

%(created)f:当前时间,用UNIX标准的表示时间的浮点数表示

%(relativeCreated)d:输出日志信息时,自Logger创建以来的毫秒数

%(asctime)s:字符串形式的当前时间

%(thread)d:线程ID

%(threadName)s:线程名

%*(process)d进程ID

%(message)s:用户输出的消息

 

import logging class TestLogging(object): def __init__(self): logFormat = '%(asctime)-12s %(levelname)-8s %(name)-10s %(message)-12s' # 字符串的时间 数字形式的日志级别 Logger的名字 用户输出的消息 logFileName = './testLog.txt' logging.basicConfig(level = logging.INFO, #设置日志级别 format = logFormat, #指定handler使用的日志显示格式 filename = logFileName, #用指定的文件名创建文件夹 filemode = 'w') #文件打开方式默认值'a',也可指定为'w' logging.debug('debug message') #之前设置的日志级别为INFO,所以在之后的文档中,由于debug的级别低于info,所以不会显示 logging.info('info message') logging.warning('warning message') logging.error('error message') logging.critical('critical message') if __name__ == '__main__': tl = TestLogging()

转载请注明原文地址: https://www.6miu.com/read-5034789.html

最新回复(0)