Python之logging日志模块

时间:2022-03-06 20:18:58

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日志

Python之logging日志模块

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...")

Python之logging日志模块

屏幕没有输出debug信息