标签:对象 name handle 返回 cti out sys ted filename
import logginglogging库提供了多个组件:Logger、Handler、Filter、Formatter。Logger对象提供应用程序可直接使用的接口,Handler发送日志到适当的目的地,Filter提供了过滤日志信息的方法,Formatter指定日志显示格式。
Logger是一个树形层级结构,输出信息之前都要获得一个Logger(如果没有显示的获取则自动创建并使用root Logger)。
logger = logging.getLogger()返回一个默认的Logger也即root Logger,并应用默认的日志级别、Handler和Formatter设置。
当然也可以通过Logger.setLevel(lel)指定最低的日志级别,可用的日志级别有logging.DEBUG、logging.INFO、logging.WARNING、logging.ERROR、logging.CRITICAL。
Logger.debug()、Logger.info()、Logger.warning()、Logger.error()、Logger.critical()输出不同级别的日志,只有日志等级大于或等于设置的日志级别的日志才会被输出。
‘‘‘
logging.basicConfig(level=logging.DEBUG, # 配置日志级别,默认输出debug等级及等级更高的内容
format=‘%(asctime)s--->%(filename)s[line:%(lineno)d]====>%(levelname)s::::%(message)s‘, # 配置日志显示格式
datefmt=‘%a, %d %b %Y %H:%M:%S‘, # 配置时间格式
filename=‘test.log‘, # 配置文件路径
filemode=‘a‘) # 配置文件权限
logging.debug(‘debug message‘)
logging.warning(‘warning message‘)
def logger():
logger = logging.getLogger() # 创建一个大对象
fh = logging.FileHandler("test_log") # 向文件里发送内容,并且给个参数,作用是:定义一个文件名,往文件里写入内容
ch=logging.StreamHandler() #向屏幕上发送内容
fm = logging.Formatter("%(asctime)s--->%(filename)s[line:%(lineno)d]====>%(levelname)s::::%(message)s") # 这个也是一个对象,作用是:定义日志格式
fh.setFormatter(fm) # 往文件里写内容
ch.setFormatter(fm) #往屏幕上输出内容
logger.addHandler(fh) # 对象,类似于吸别人内力,把fh吃掉
logger.addHandler(ch) #对象,类似于吸别人内力,把ch吃掉
logger.setLevel("DEBUG") # 设置日志级别,控制日志输入多少条信息
return logger
logger = logger() # 这个日志就做成了一个接口,在其它地方,直接调用他就可以啦!
logger.debug("debug") # 输出日志的级别
logger.info("info")
logger.warning("warning")
logger.error("error")
logger.critical("critical")
标签:对象 name handle 返回 cti out sys ted filename
原文地址:http://blog.51cto.com/6000734/2309240