logging

import logging

logger = logging.getLogger() # 创建对象logger,括号里的参数为用户名,默认为根用户, 用户名不可重复,唯一,(如果用户有父用户,并且也创建了日志对象,在输出日志的时候,会输出两遍,有几个父用户,就会输出几遍)

file_where = logging.FileHandler('log.log') # 日志输出位置为文件(文件路径)
scree_where = logging.StreamHandler()   # 日志输出位置为屏幕

# 为输出的日志设置格式
fmt = logging.Formatter('%(asctime)s %(lineno)d %(message)s')
"""
日志的格式:
format参数中可能用到的格式化串:
%(name)s Logger的名字
%(levelno)s 数字形式的日志级别
%(levelname)s 文本形式的日志级别
%(pathname)s 调用日志输出函数的模块的完整路径名,可能没有
%(filename)s 调用日志输出函数的模块的文件名
%(module)s 调用日志输出函数的模块名
%(funcName)s 调用日志输出函数的函数名
%(lineno)d 调用日志输出函数的语句所在的代码行
%(created)f 当前时间,用UNIX标准的表示时间的浮 点数表示
%(relativeCreated)d 输出日志信息时的,自Logger创建以 来的毫秒数
%(asctime)s 字符串形式的当前时间。默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
%(thread)d 线程ID。可能没有
%(threadName)s 线程名。可能没有
%(process)d 进程ID。可能没有
%(message)s用户输出的消息
""" file_where.setFormatter(fmt)
# 将格式添加到对应的位置对象里 scree_where.setFormatter(fmt) logger.addHandler(file_where) # 将输出位置的对象加到logger里 logger.addHandler(scree_where) logger.setLevel('DEBUG') # 用logger来设置日志级别,默认级别为warning (logger相当于吸星大法,吸收日志输出的位置,输出的位置的对象吸收格式,最后都被logger吸收,用logger统一处理(设置级别,打印等)) logger.info('aaa') # 用logger来打印日志信息 logger.debug('bbbb') logger.critical('cccc') logger.error('dddd') logger.warning('ggggg')

 

posted @ 2018-06-23 19:55  BensonChang  阅读(268)  评论(0编辑  收藏  举报