Let's say I got this logging.logger instance:
import logging logger = logging.getLogger('root') FORMAT = "[%(filename)s:%(lineno)s - %(funcName)20s() ] %(message)s" logging.basicConfig(format=FORMAT) logger.setLevel(logging.DEBUG) Problem comes when I try to use it like the builtin print with a dynamic number of arguments:
>>> logger.__class__ <class 'logging.Logger'> >>> logger.debug("hello") [<stdin>:1 - <module>() ] hello >>> logger.debug("hello","world") Traceback (most recent call last): File "c:\Python2711\Lib\logging\__init__.py", line 853, in emit msg = self.format(record) File "c:\Python2711\Lib\logging\__init__.py", line 726, in format return fmt.format(record) File "c:\Python2711\Lib\logging\__init__.py", line 465, in format record.message = record.getMessage() File "c:\Python2711\Lib\logging\__init__.py", line 329, in getMessage msg = msg % self.args TypeError: not all arguments converted during string formatting Logged from file <stdin>, line 1 How could i emulate the print behaviour still using logging.Logger?