import logging
import sys
import re
logger = logging.getLogger('LoggerName')
formatter = logging.Formatter('%(asctime)s %(name)s %(levelname)-8s: %(message)s')
file_handler = logging.FileHandler('test.log')
file_handler.setFormatter(formatter)
console_handler = logging.StreamHandler(sys.stdout)
console_handler.formatter = formatter
console_filter = logging.Filter()
console_filter.filter = lambda record: re.search('error', record.getMessage()) is None
console_handler.addFilter(console_filter)
logger.addHandler(file_handler)
logger.addHandler(console_handler)
logger.setLevel(logging.INFO)
logger.debug('this is debug.')
logger.info('this is info')
logger.warning('this is %s', 'warning')
logger.error('this is %s' % 'error')
logger.critical('this is {}'.format('critical'))
output:
2018-03-10 22:40:43,025 LoggerName INFO : this is info
2018-03-10 22:40:43,026 LoggerName WARNING : this is warning
2018-03-10 22:40:43,026 LoggerName CRITICAL: this is critical