python - logger.setLevel 未返回所需的级别

标签 python logging

我正在尝试在我的应用程序中使用此代码:

 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)

关于python - logger.setLevel 未返回所需的级别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18363935/

相关文章:

Python:获取列表中出现次数最多的项目

java - 如何从 log4j.xml 的 .properties 文件中获取动态值

powershell - 如何从工作流作业登录到 Powershell 控制台

java - JDBC 记录到文件

python - 如何将 sqlite 3.8.2 升级到 >= 3.8.3

python - Tensorflow - 使用先前学习的权重来初始化不同维度的新权重

JAVA:日志文件即将翻转时应用程序暂停

c# - .NET 跟踪日志查看器

python - 对于没有参数的情况,str.split 是如何实现的

python - FFT 未返回正确的幅度