Prepend to logging message
Peter Otten
__peter__ at web.de
Sun Jan 10 07:36:06 EST 2010
Joan Miller wrote:
> On 10 ene, 10:26, Peter Otten <__pete... at web.de> wrote:
>> Joan Miller wrote:
>> > How to prepend anything to a logging message? Is possible to do it
>> > from the dictionary object (ExtraLog) or is there is that override
>> > process() [1]?
>>
>> > ------------------
>> > class ExtraLog(object):
>>
>> > def __getitem__(self, name):
>> > if name == 'foo':
>> > result = 'testing'
>> > return result
>>
>> > def __iter__(self):
>> > keys = ['foo',]
>> > keys.extend(self.__dict__.keys())
>> > return iter(keys)
>>
>> format = "foo=%(foo)s " + logging.BASIC_FORMAT
>> logging.basicConfig(format=format)
>> logger = logging.LoggerAdapter(logging.getLogger('foo'), ExtraLog())
>> logger.error("yadda")
>>
>> Is that what you want?
>>
>> Peter
>
> I want that a message can be modified before of being logged. i.e. for
> "yadda" I would that were preppend 2 spaces. (And I want not manage
> that in the format to manage the indentation of all text)
Following Ishwor's advice:
import logging
class MyLoggerAdapter(logging.LoggerAdapter):
def process(self, msg, kwargs):
return "message->" + msg.upper(), kwargs
logging.basicConfig()
logger = MyLoggerAdapter(logging.getLogger('foo'), {})
logger.error("yadda")
Peter
More information about the Python-list
mailing list