首页 > 解决方案 > 将日志记录级别作为变量传递给 python3 代码?

问题描述

这是我的代码:

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-3.xloggingsettings

解决方案


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

使用源代码:

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)

推荐阅读