logging模块
日志有5个级别,debug, info,error,warning,critical
可用basicConfig来把日志写入文件
import logging logging.basicConfig(format='%(asctime)s %(message)s',datefmt='%Y-%m-%d %I:%M:%S %p',filename="text.log",level=logging.INFO) logging.info("log") logging.debug("debug") logging.critical("dangerous")
注意:format 是指显示格式,里面的asctime和message都是占位符
datefmt是日期显示格式,filename是存入的文件名称,level是指日志显示的级别,只显示与所设置等级相同及以上等级的内容。
2.想把日志同时打印在屏幕和文件中
import logging #1.创建一个logger对象 LOG = logging.getLogger('web') # 括号内的一般是模块名,表示这个模块的日志 LOG.setLevel(logging.DEBUG) # 设置全局级别 #2.1创建handler对象 console = logging.StreamHandler() # 创建一个屏幕的handler file = logging.FileHandler('web.log') #创建一个文件的handler console.setLevel(logging.INFO) #2.2把handler对象绑定到logger对象 LOG.addHandler(console) LOG.addHandler(file) #3.1创建formatter对象 console_format = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') file_format = logging.Formatter('%(asctime)s - %(name)s - %(lineno)d - %(message)s') #3.2把formatter绑定到handler console.setFormatter(console_format) file.setFormatter(file_format) # 输出日志 LOG.info("hi,man") # 默认全局是info级别 LOG.debug("haha")
注意:关于全局级别和handler的级别 。类似于一个漏斗,输出的内容得先通过全局的级别,再通过handler的级别
浙公网安备 33010602011771号