Open shlomiLan opened 7 years ago
The level
argument is global. What you want do is:
def create_logger(log_path, log_name, log_level=logging.INFO):
daiquiri.setup(
outputs=(daiquiri.output.File(
directory=log_path, program_name=log_name),
daiquiri.output.STDOUT,))
logger = daiquiri.getLogger(program_name=log_name)
logger.setLevel(log_level)
return logger
Setting documentation tag since it could be a cool example in doc.
Thanks
I have tried to use your code and got the following error:
File "utils.py", line 22, in create_logger
logger.setLevel(log_level)
AttributeError: 'KeywordArgumentAdapter' object has no attribute 'setLevel'
What I'm doing wrong?
@shlomiLan
My bad, the adapter returned by daiquiri does not support that. We should probably enhance that too. Try:
def create_logger(log_path, log_name, log_level=logging.INFO):
daiquiri.setup(
outputs=(daiquiri.output.File(
directory=log_path, program_name=log_name),
daiquiri.output.STDOUT,))
logging.getLogger(log_name).setLevel(log_level)
return daiquiri.getLogger(program_name=log_name)
The only way I have managed to change the logger log level is with:
daiquiri.getLogger(program_name=log_name).logger.level = log_level
In my app I create a logger using:
When I look at the console, I see logs for my app and also for all the packages that I use in my app, before when I used the default logger I didn't see those messages.
Can I turn it off, so that in my log I will only see my app logs?