Logging模块,针对日志操作的模块
Logging模块可替代print函数的功能,并能将标准输出输入到日志文件保存起来
且利用Logging模块可部分替代debug功能
Logging模块中有6个级别,分别是
NOTSET | 0 |
DEBUG | 10 |
INFO | 20 |
WARNING | 30 |
ERROR | 40 |
CRITICAL | 50 |
这些级别的用处,先将自己的日志定一个级别,
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()