import logging
logger = logging.getLogger("test.conf")
logger.setLevel(logging.DEBUG)
hterm = logging.StreamHandler()
hterm.setLevel(logging.ERROR)
hfile = logging.FileHandler("access.log")
hfile.setLevel(logging.INFO)
formatter = logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
hterm.setFormatter(formatter)
hfile.setFormatter(formatter)
logger.addHandler(hterm)
logger.addHandler(hfile)
class test(object):
def post(self):
try:
logger.info('right')
except:
logger.error('wrong')
为什么日志(“正确”)将在控制台中打印,我已经设置了级别,我有什么想念的逻辑吗?
如果用以下代码替换类部分,则可以达到我的目的,但是当我添加类时,它不起作用
logger.debug("User %s is loging" % 'jeck')
logger.info("User %s attempted wrong password" % 'fuzj')
logger.warning("user %s attempted wrong password more than 3 times" % 'mary')
logger.error("select db is timeout")
logger.critical("server is down")
在上面的代码中,它将打印严重和错误,并且所有级别都将写入文件。
答案 0 :(得分:0)
您正在记录器上设置日志记录级别DEBUG,并尝试使用信息进行记录,因此将打印“正确”。顺序是:
调试->信息->错误->严重。
因此,如果您将日志记录级别设置为DEBUG,则将显示处理DEBUG的任何级别的日志。如果您将日志记录级别设置为ERROR,则会显示错误和严重级别的日志,而不显示调试和信息