Python3 日志记录模块:在配置中设置日志记录级别变量

the*_*ank 3 logging python-3.x

我正在使用 Python 3.5 中的日志记录模块,我觉得我以前已经这样做过,但我想使用我的配置文件提供的常量来更改日志记录级别。

目前我正在使用:

logger = logging.getLogger(__name__)
logging.basicConfig(level=logging.INFO)
logger.setLevel(logging.INFO)
Run Code Online (Sandbox Code Playgroud)

我想在配置文件中声明 INFO、DEBUG 等并使用文字替换。

我的脚本配置:

LOG_LEVEL = 'DEBUG' #this value to be modified by user.
Run Code Online (Sandbox Code Playgroud)

脚本:

import my_script_conf as msc
SET_LEVEL = 'logging.' + msc.LOG_LEVEL
BASIC_LEVEL = 'level=' + SET_LEVEL

logger = logging.getLogger(__name__)
logging.basicConfig(BASIC_LEVEL)
logger.setLevel(SET_LEVEL)
Run Code Online (Sandbox Code Playgroud)

Python 对此感到不安,任何对我糟糕的编码的帮助将不胜感激。任何达到相同结果的途径,我基本上希望它可读且易于使用,在外部配置文件中设置日志记录模块级别似乎是最明智的选择。你的Pythonista可能有其他想法!

谢谢,弗兰克

Yos*_*SaL 7

不确定是否完全理解你的问题,但如果有人想使用环境变量或配置文件设置 python 日志级别,你可以简单地使用字符串,它将被处理:

import logging
logging.basicConfig(
    level=os.environ.get('LOGLEVEL', 'INFO').upper()
)
Run Code Online (Sandbox Code Playgroud)