将日志记录级别作为变量传递给python3代码?

问题描述 投票:0回答:1

这是我的代码:

import logging
formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")

def setup_logger(name, log_file, level=logging.INFO):
    # To setup as many loggers as you want

    handler = logging.FileHandler(log_file)        
    handler.setFormatter(formatter)

    logger = logging.getLogger(name)
    logger.setLevel(level)
    logger.addHandler(handler)

    return logger

# Application Log:

app_log = setup_logger("app", "app.log", logging.DEBUG)

# Usage Log:

usage_log = setup_logger("usage", "usage.log", logging.DEBUG)

我想将

logging.DEBUG
级别作为变量从
settings.ini
文件传递。

请指导我如何将其作为变量传递?

我应该将其作为字符串

"logging.INFO"
还是有其他方法?

python python-3.x logging settings
1个回答
1
投票

找到解决方案并与他人分享:

使用this源代码:

Log = logging.getLogger('myLogger')
level = logging.getLevelName('INFO')
Log.setLevel(level)

我已经在我的settings.ini文件中设置了我想要的日志级别:

[Logging]
log_level = DEBUG

并修改了代码:

# Read settings.ini file

config = configparser.ConfigParser()
config.read(dir_path + "/settings.ini")

# Logging

formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s - %(message)s")

log_level = config.get("Logging", "log_level")

def setup_logger(name, log_file, level_name = 'INFO'):
    # To setup as many loggers as you want

    handler = logging.FileHandler(log_file)        
    handler.setFormatter(formatter)

    logger = logging.getLogger(name)
    level = logging.getLevelName(level_name)
    logger.setLevel(level)
    logger.addHandler(handler)

    return logger

# Application Log:

app_log = setup_logger("app", "app.log", log_level)

# Usage Log:

usage_log = setup_logger("usage", "usage.log", log_level)
© www.soinside.com 2019 - 2024. All rights reserved.