Python logging basicConfig configures the root logger. You can configure the logging system by creating a stream handler with a default format.
logging.basicConfig(filename='test.log', format='%(filename)s: %(message)s', level=logging.DEBUG)
The debug
, info
, warning
, error
and critical
call basicConfig
automatically if no handlers are defined for the root logger.
Python logging basicConfig example
Simple example code.
import logging
logging.basicConfig(filename='test.log', format='%(filename)s: %(message)s',
level=logging.DEBUG)
logging.debug('This is a debug message')
logging.info('This is an info message')
logging.warning('This is a warning message')
logging.error('This is an error message')
logging.critical('This is a critical message')
Output:
You can remove the default handlers and reconfigure logging like this:
# if someone tried to log something before basicConfig is called, Python creates a default handler that
# goes to the console and will ignore further basicConfig calls. Remove the handler if there is one.
root = logging.getLogger()
if root.handlers:
for handler in root.handlers:
root.removeHandler(handler)
logging.basicConfig(format='%(asctime)s %(message)s',level=logging.DEBUG)
Do comment if you have any doubts or suggestions on this Python log topic.
Note: IDE: PyCharm 2021.3.3 (Community Edition)
Windows 10
Python 3.10.1
All Python Examples are in Python 3, so Maybe its different from python 2 or upgraded versions.