logging 模块

import logging包含 info,debug(默认不打印)error,warning,critical指定日志打印级别把日志输出到文件里logging.basicConfg(filename='xxx.log',level = logging.INFO)加上时间logging.basicConfig(filename='xxx.log',                         level = logging.INFO,                         format='%(asctime)s %(levelname)s %(message)s',                         datefmt='%m/%d/%Y %I:%M:%S %p')%(name)s logger的名字%(levelno)s  数字形式的日志级别%(levelname)s 文本形式的日志级别%(filename)s 调用日志输出函数的模块的文件名%(funcName)s  调用日志输出函数的函数名%(lineno)d  调用日志输出函数的语句所在的代码行%(module)s  调用模块名%(thread)d   线程ID%(threadName)s 线程名%(process)d 进程ID%(message)s 用户输出的消息``````````````````````````````````````````````````````````````````````````````````````````````````````logger = logging.getLogger('TEST-LOG')#常见一个logger#返回一个logger实例,若是没有指定name,返回root logger。只要name相同,返回的logger实例都是同一个并且只有一个,即name和logger实例是一一对应的。这意味着,无需把logger实例在各个模块中传递。只要知道name,就能获得同一个logger实例logger.setLevel(logging.DEBUG)#指定日志输出的等级ch = logging.StreamHandler()#屏幕输出ch.setLevel(logging.DEBUG)#指定日志输出的等级fh = logging.FileHandler('ACCLOG')#fh = handlers.TimedRotatingFileHandler#截断#输出到文件acclogfh.setLevel(logging.ERROR)#指定日志输出的等级formatter = logging.Formatter('%(acctimes) - %(name)s - %(levelname)s - %(message)s')#定义日志格式ch.setFormatter(formatter)fh.setFormatter(formatter)#设置格式logger.addHandler(fh)logger.addHandler(ch)#加入handlerlogger.warning('xxxx')`````````````````````````````````````````````````````````````````````````````````````````````````````
相关文章
相关标签/搜索