首页 > 解决方案 > 将字符串从配置文件转换为导入路径

问题描述

我这里有一个配置文件:

log:
  filename: 'log'
  format: '%(levelname)s:%(message)s'
  level: 'logging.INFO'

我在这里尝试在我的日志配置中使用它:

logging.basicConfig(
    filename=str(config['log']['filename']),
    format=str(config['log']['format']),
    level=str(config['log']['level'])
)

但是,我收到此错误可能是因为我传入了一个字符串,但日志记录级别需要日志记录模块中的路径。

ValueError: Unknown level: 'logging.INFO'

如何将其转换为模块路径,或者我应该使用不同的方法?

标签: pythonpython-3.xlogging

解决方案


您可以使用logging.getLevelName('INFO')从字符串转换为日志级别(这是一个整数代码)。因此,只要您可以将配置文件更改为:

log:
  filename: 'log'
  format: '%(levelname)s:%(message)s'
  level: 'INFO'

这应该工作

logging.basicConfig(
    filename=str(config['log']['filename']),
    format=str(config['log']['format']),
    level=logging.getLevelName(config['log']['level'])
)

PS 你需要 str() 演员表吗?


推荐阅读