Here is my code:
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)
I want to pass the logging.DEBUG
level as variable from settings.ini
file.
Please instruct me how can I pass it as variable?
Should I do this as string "logging.INFO"
or there is any other method?
Found the solution and sharing with others:
Using this source's code:
Log = logging.getLogger('myLogger')
level = logging.getLevelName('INFO')
Log.setLevel(level)
I have set in my settings.ini file the log level I want:
[Logging]
log_level = DEBUG
And modified the code:
# 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)