I'm just starting with PyCharm, is there a way to show debug & info warnings?
import logging logger = logging.getLogger('tipper') logger.setLevel(logging.DEBUG) logger.debug('debug message') logger.info('info message') logger.warn('warn message') logger.error('error message') logger.critical('critical message')
warn, error, critical all show:
/home/username/someproject/.someprojectenv/bin/python3/home/username/someproject/go.py warn message error message critical message Process finished with exit code 0
However debug, info do not show.
The problem has nothing to do with PyCharm, but with how logging configuration works. If you try to write the code you have shown in a normal python interactive session you get the same output:
>>> import logging >>> logger = logging.getLogger('tipper') >>> logger.setLevel(logging.DEBUG) >>> logger.debug('debug message') >>> logger.info('info message') >>> logger.warn('warn message') warn message >>> logger.error('error message') error message >>> logger.critical('critical message') critical message
The problem is that setting the logger
's level isn't enough! You must also add a handler to the logger otherwise the logger will simply forward the message up the chain. The messages will end up at the root
logger, which has, by default, a level of logging.WARN
and thus discards DEBUG
level messages.
However if you add a handler to logger
all works fine:
>>> logger.addHandler(logging.StreamHandler()) >>> logger.debug('test') test
You can set more than one handler for each logger and each handler can have a different logging level.
See this question for a bit of further information about logger's and handler's levels. I'd suggest also to read carefully the documentation for the logging
module and the various guides (e.g. the logging
How-To, because it has a really advanced configuration.
Also from python3.2 there's a dictConfig
function which allow you to specify the configuration for your logging hierarchy as dictionary, without having to manually create every handler and logger by hand.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With