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的级别

posted on 2018-08-06 17:19  Dempsey(鹏)  阅读(109)  评论(0)    收藏  举报