Re: Prepend to logging message
On 10 ene, 03:27, Ishwor Gurung ishwor.gur...@gmail.com wrote: Joan, 2010/1/10 Joan Miller pelok...@gmail.com: 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) logger = logging.LoggerAdapter(logging.getLogger('foo'), ExtraLog()) -- Yep. Just subclass LoggerAdapter and override process(..) Read this:http://docs.python.org/library/logging.html#adding-contextual-informa... -- Regards Ishwor Gurung Key id:0xa98db35e Key fingerprint:FBEF 0D69 6DE1 C72B A5A8 35FE 5A9B F3BB 4E5E 17B5 Any example to override process() ? -- http://mail.python.org/mailman/listinfo/python-list
Re: Prepend to logging message
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 -- http://mail.python.org/mailman/listinfo/python-list
Re: Prepend to logging message
On 10 ene, 10:26, Peter Otten __pete...@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) -- http://mail.python.org/mailman/listinfo/python-list
Re: Prepend to logging message
Joan Miller wrote: On 10 ene, 10:26, Peter Otten __pete...@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 -- http://mail.python.org/mailman/listinfo/python-list
Re: Prepend to logging message
On 10 ene, 12:36, Peter Otten __pete...@web.de wrote: Joan Miller wrote: On 10 ene, 10:26, Peter Otten __pete...@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 Thanks! I had to see the code to override it correctly [1] class LoggerAdapter_(logging.LoggerAdapter): def __init__(self, logger, extra): self.logger = logger self.extra = extra def process(self, msg, kwargs): kwargs[extra] = self.extra return message- + msg.upper(), kwargs [1] http://bitbucket.org/mirror/python-trunk/src/tip/Lib/logging/__init__.py#cl-1264 -- http://mail.python.org/mailman/listinfo/python-list
Re: Prepend to logging message
On 10 ene, 13:10, Joan Miller pelok...@gmail.com wrote: On 10 ene, 12:36, Peter Otten __pete...@web.de wrote: Joan Miller wrote: On 10 ene, 10:26, Peter Otten __pete...@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 Thanks! I had to see the code to override it correctly [1] class LoggerAdapter_(logging.LoggerAdapter): def __init__(self, logger, extra): self.logger = logger self.extra = extra def process(self, msg, kwargs): kwargs[extra] = self.extra return message- + msg.upper(), kwargs [1]http://bitbucket.org/mirror/python-trunk/src/tip/Lib/logging/__init__... Sorry! It isn't necessary to copy __init__(). -- http://mail.python.org/mailman/listinfo/python-list
Re: Prepend to logging message
Joan, 2010/1/10 Joan Miller pelok...@gmail.com: 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) logger = logging.LoggerAdapter(logging.getLogger('foo'), ExtraLog()) -- Yep. Just subclass LoggerAdapter and override process(..) Read this: http://docs.python.org/library/logging.html#adding-contextual-information-to-your-logging-output -- Regards Ishwor Gurung Key id:0xa98db35e Key fingerprint:FBEF 0D69 6DE1 C72B A5A8 35FE 5A9B F3BB 4E5E 17B5 -- http://mail.python.org/mailman/listinfo/python-list