how to use logging module to log an object like print()

Steve Holden steve at holdenweb.com
Thu Oct 30 00:34:44 EDT 2008


Diez B. Roggisch wrote:
> Steve Holden schrieb:
>> 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.
> 
> Nope, it's not. It only happens when the message is really logged.
> 
Vinay, please tell me whether I was right or wrong ...

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