I have the following code in a file called 'logger.py'
import logging format = '%(asctime)s - %(name)-30s - %(levelname)-8s - %(message)s' logging.basicConfig(level=logging.DEBUG, format=format) formatter = logging.Formatter(format) fh = logging.FileHandler('test.log') fh.setFormatter(formatter) fh.setLevel(logging.DEBUG) ch = logging.StreamHandler() ch.setFormatter(formatter) ch.setLevel(logging.INFO) logging.getLogger().addHandler(fh) logging.getLogger().addHandler(ch)
and in another file
import logging import logger logger = logging.getLogger(__name__) logger.info('Staring Scheduler')
and I get the following console output
2014-07-14 22:27:10,915 - __main__ - INFO - Staring Scheduler 2014-07-14 22:27:10,915 - __main__ - INFO - Staring Scheduler
I can not disable double output. I would like to use an additional stream handler to configure the log level printed on the console. In the future, I would also like to use RotatingFileHandler instead of a simple file handler.
Does anyone know how to achieve this while maintaining a simple registrar setup, as in the second file? I have a search, but no solution seems to do this.
UPDATE 1 (enabled)
logger.py file
import logging logging.getLogger().setLevel(logging.DEBUG) formatter = logging.Formatter('%(asctime)s - %(name)-30s - %(levelname)-8s - %(message)s') fh = logging.FileHandler('test.log') fh.setFormatter(formatter) fh.setLevel(logging.DEBUG) ch = logging.StreamHandler() ch.setFormatter(formatter) ch.setLevel(logging.ERROR) logging.getLogger().addHandler(fh) logging.getLogger().addHandler(ch)
File test.py
import logging import logger logger = logging.getLogger(__name__) logger.debug('Debug message') logger.info('Info message') logger.warning('Warning message') logger.error('Error message') logger.critical('Critical message')
Console output:
2014-07-15 09:47:58,171 - __main__ - ERROR - Error message 2014-07-15 09:47:58,171 - __main__ - CRITICAL - Critical message
Test.log :
2014-07-15 09:47:58,171 - __main__ - DEBUG - Debug message 2014-07-15 09:47:58,171 - __main__ - INFO - Info message 2014-07-15 09:47:58,171 - __main__ - WARNING - Warning message 2014-07-15 09:47:58,171 - __main__ - ERROR - Error message 2014-07-15 09:47:58,171 - __main__ - CRITICAL - Critical message
python logging
Tammo heeren
source share