Python之logging日志模块
logging
用于便捷既然日志切线程安全的模块
vim log_test.py
import logging logging.basicConfig(filename='log.log', format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S %p', level=logging.DEBUG) logging.debug('debug') logging.info('info') logging.warning('warning') logging.error('error') logging.critical('critical') logging.log(10,'log')
运行生成日志文件log.log
模拟一个生成错误日志的脚本
import logging logging.basicConfig(filename='log.log', format='%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s', datefmt='%Y-%m-%d %H:%M:%S %p', level=logging.DEBUG) while True: option = raw_input("input a digit:") if option.isdigit(): print "hehe",option logging.info('option correct') else: logging.error('Must input a digit!')
执行如果输入的是数字,写入info日志如果不是则写成error日志
PS:level=logging.DEBUG 是代表最低记录基本如果改成WARNING则不会记录info,debug信息就算设置了
上面是把日志写到文件里面
把日志显示到屏幕上面有输出到文件
import logging logger = logging.getLogger("simple_example") logger.setLevel(logging.DEBUG) #on screen ch = logging.StreamHandler() ch.setLevel(logging.WARNING) #into file fh = logging.FileHandler("log2.log") fh.setLevel(logging.DEBUG) formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s -%(module)s: %(message)s") ch.setFormatter(formatter) fh.setFormatter(formatter) logger.addHandler(ch) logger.addHandler(fh) logger.debug("debug msg...") logger.info("info msg...") logger.warn("warn msg...") logger.error("error msg...") logger.critical("critical msg...")
屏幕没有输出debug信息