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

时间:2020-02-02 12:43:42

标签: python-3.x logging settings

这是我的代码:

filename

我想将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还是其他方法?

1 个答案:

答案 0 :(得分:0)

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

使用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)