if isinstance(level, str):
level = LEVEL_DICT[level.lower()]
if level >= self._level:
- self._log.log(level, message.format(*args), **kwargs)
+ try:
+ message_formatted = message.format(*args)
+ except (KeyError, IndexError):
+ message_formatted = '[LOG ARGS!] ' + message
+ self._log.log(level, message_formatted, **kwargs)
def _log_no_test(self, level, message, *args, **kwargs):
""" same as log() but without the isinstance test for internal use"""
if level >= self._level:
- self._log.log(level, message.format(*args), **kwargs)
+ try:
+ message_formatted = message.format(*args)
+ except (KeyError, IndexError):
+ message_formatted = '[LOG ARGS!] ' + message
+ self._log.log(level, message_formatted, **kwargs)
def log_count_if_interesting(self, count, level=INFO, counter_name=None):
""" Log value of a counter in gradually coarser intervals
log.info('logging with idx {0}', idx)
log.log_count_if_interesting(idx)
+
+def test_error_in_formatting():
+ log = get_logger('logger_test')
+ log.warn('forgot to add argument {} and {1} and {cnf} to format string')
+ log.warn('wrong number {} of arguments {}', 1)
+
if __name__ == '__main__':
#test_short_level_format()
#test_get_logger()
- test_line_counter()
+ #test_line_counter()
+ test_error_in_formatting()