【python】模块——logging模块
一、日志相关
1.日记级别(由低到高)
(1)notse (2)debug (3)info (5)warning (5)error (6)critical
2.日志格式:logger名称:用户输出消息
3.默认级别为warning,只会显示warning及以上级别的信息:warning error critical
import logging logging.debug('debug message') logging.info('info message') logging.warning('warning message')#只会打印默认级别及以上级别的信息 logging.error('error message') logging.critical('critical message') # WARNING:root:warning message # ERROR:root:error message # CRITICAL:root:critical message
二、logging模块
1.设置日志——logging.basicConfig
#-----------------------------------logging.basicConfig logging.basicConfig( level = logging.DEBUG, #设置默认级别 filename = "logger.log", #将日志信息放入文件中,没有文件则自动生成一个文本 filemode = "w", #默认为追加模式,当filemode="w"时,只会存储当前日志信息 format = "%(asctime)s %(filename)s[%(lineno)d] %(message)s" #设定日志打印格式 ''' %(asctime)s 显示时间 %(filename)s 显示文件名 %(lineno)d 显示日志行号 %(message)s 显示信息 ''' )
1 format参数中可能用到的格式化串: 2 %(name)s Logger的名字 3 %(levelno)s数字形式的日志级别 4 %(levelname)s文本形式的日志级别 5 %(pathname)s调用日志输出函数的模块的完整路径名,可能没有 6 %(filename)s调用日志输出函数的模块的文件名 7 %(module)s调用日志输出函数的模块名 8 %(funcName)s调用日志输出函数的函数名 9 %(lineno)d调用日志输出函数的语句所在的代码行 10 %(created)f当前时间,用UNIX标准的表示时间的浮点数表示 11 %(relativeCreated)d输出日志信息时的,自Logger创建以来的毫秒数 12 %(asctime)s字符串形式的当前时间。默认格式是“2018-07-08 16:49:45,896"。逗号后面的是毫秒 13 %(thread)d线程ID。可能没有 14 %(threadName)s线程名。可能没有 15 %(process)d进程ID。可能没有 16 %(message)s用户输出的消息
2.创建logger对象
def logger(): logger=logging.getLogger() #创建logger对象 fh=logging.FileHandler("test_log") #向test_log文件发送信息fh #ch=logging.StreamHandler() #向屏幕发送信息对象ch fm=logging.Formatter("%(asctime)s %(message)s") #设定日志格式 fh.setFormatter(fm) #修改fh日志格式为fm #ch.setFormatter(fm) #修改ch日志格式为fm logger.addHandler(fh) #将fh对象功能添加到logger对象中 #logger.addHandler(ch)#将ch对象功能添加到logger对象中 logger.setLevel("DEBUG") #设定logger的日志等级 return logger
(2)应用logger对象
logger=logger() #创建对象 #设置logger对象的日志信息 logger.debug("debug") logger.info("info") logger.warning("warning") logger.error("error") logger.critical("critical")
3.注意:
(1)创建对象函数可以传入参数logging.getLogger(‘son_root’)
传入参数相同的对象实际为同一子个对象,两者同步修改。
不掺入参数,默认为根对象。
(2)打印子对象日志信息时会默认打印所有父级对象的日志信息
(3)子对象的子对象表示方法——'son_root.grand_root' 创建一个对象,为子对象的子对象
————————————————————结束————————————————————
浙公网安备 33010602011771号