Python Logging Formatter: print the logger name

Question:

How can I change the logger format in order to print the logger name?

Desired output:

>>> import logging
>>> logger = logging.getLogger('AI Service')
>>> logger.setLevel(logging.DEBUG)
>>> logging.basicConfig(format='[%(levelname)s] %(???)s - %(message)s')
>>> logger.info("Starting service")
[INFO] AI Service - Starting service

Is this possible? I can’t find a ‘formatter’ option to do so.

Asked By: Guillem

||

Answers:

The answer is just a google away: %(name)s.

Answered By: Toni Sredanović

You need to provide logging format to support it. In your case, you can define something like below

logging.basicConfig(format='%(asctime)s:t%(name)s:t%(levelname)s:t%(message)s')

This will show the time, module name, log level and message.

Answered By: Sreejith Nair
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.