繁体   English   中英

logger.setLevel没有返回期望的水平

[英]logger.setLevel doesn't return desired level

我正在尝试在我的应用中使用以下代码:

 def logger(log_file='base.log', set_level='INFO', identity='base'):
     set_level = get_settings().logging_setLevel
     if log_file:
         log_path = os.path.join(os.path.expanduser('~'), '/mnt/logs/')
         if not os.path.exists(log_path):
             os.makedirs(log_path)
         handler = logging.FileHandler(log_path+log_file)
     else:
         handler = logging.StreamHandler()

     formatter = logging.Formatter('%(asctime)s - %(name)s - '+ identity +' - %(levelname)s - %(message)s', '%Y-%m-%dT%H:%M:%SZ')
     handler.setFormatter(formatter)
     logger = logging.getLogger(identity)
     logger.addHandler(handler)
     logger.setLevel(eval("logging." + set_level))

     return logger

但是问题是无论我在set_level参数中选择什么级别,它仍然会产生所有级别('DEBUG'等)。

您能帮我找出问题吗?

而不是使用eval ,请尝试以下操作:

level = logging.getLevelName(set_level)
logger.setLevel(level)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM