how to use logging module to log an object like print()
Steve Holden
steve at holdenweb.com
Thu Oct 30 00:33:35 EDT 2008
bieffe62 at gmail.com wrote:
> On 29 Ott, 12:24, Steve Holden <st... at holdenweb.com> wrote:
>> Diez B. Roggisch wrote:
>>> davy zhang schrieb:
>>>> mport logging
>>>> import pickle
>>>> # create logger
>>>> logger = logging.getLogger("simple_example")
>>>> logger.setLevel(logging.DEBUG)
>>>> # create console handler and set level to debug
>>>> ch = logging.StreamHandler()
>>>> ch.setLevel(logging.DEBUG)
>>>> # create formatter
>>>> formatter = logging.Formatter("%(asctime)s - %(name)s - %(levelname)s
>>>> - %(message)s ")
>>>> # add formatter to ch
>>>> ch.setFormatter(formatter)
>>>> # add ch to logger
>>>> logger.addHandler(ch)
>>>> d = {'key':'msg','key2':'msg2'}
>>>> # "application" code
>>>> logger.debug("debug message",d)#can not do this
>>> logger.debug("yes you can: %r", d)
>> One deficiency of this approach, however, is that the string formatting
>> is performed even when no logging is required, thereby wasting a certain
>> amount of effort on unnecessary formatting.
>>
>> regards
>> Steve
>> --
>> Steve Holden +1 571 484 6266 +1 800 494 3119
>> Holden Web LLC http://www.holdenweb.com/- Nascondi testo citato
>>
>
> Sure about that?
>
> This is the implementation of Logger.debug in
> the file : ..Python25\lib\logging\__init__.py
>
> def debug(self, msg, *args, **kwargs):
> """
> Log 'msg % args' with severity 'DEBUG'.
>
> To pass exception information, use the keyword argument
> exc_info with
> a true value, e.g.
>
> logger.debug("Houston, we have a %s", "thorny problem",
> exc_info=1)
> """
> if self.manager.disable >= DEBUG:
> return
> if DEBUG >= self.getEffectiveLevel():
> apply(self._log, (DEBUG, msg, args), kwargs)
>
>
> The other methods (info, warning, ...) are similar. It looks like
> the formatting is only done if actually used.
>
Pretty sure, and Vinay's reply convinced me I was correct. He should
know, after all ...
regards
Steve
--
Steve Holden +1 571 484 6266 +1 800 494 3119
Holden Web LLC http://www.holdenweb.com/
More information about the Python-list
mailing list