开发者

Crashing the logging formatter?

开发者 https://www.devze.com 2023-01-14 19:05 出处:网络
I have a logging component in my program.The setup of the formatter is straightforward: sh.setFormatter(logging.Formatter(\"%(asctime)s - %(message)s\"))

I have a logging component in my program. The setup of the formatter is straightforward:

sh.setFormatter(logging.Formatter("%(asctime)s - %(message)s"))

I notice that my program is having problems. After a certain point, the formatter reverts to the default configuration (i.e., ignores the form开发者_JAVA技巧atting I supplied). On closer inspection it seems that I am crashing it by sending a message that throws a UnicodeDecodeError when rendered in the string. But, I can't seem to fix.

I wrapped the logging call:

try:
    my_logger.info(msg)
except UnicodeDecodeError:
    pass

Which "catches" the exception, but the logger is still pooched.

Any thoughts?


Any idea what input is causing the UnicodeDecodeError? Ample printing of variables would help! If you want to move on upon receiving that error, you should wrap the calls to the formatter in a try..except block.

try:
    # log stuff
except UnicodeDecodeError:
    # handle the exception and move on

It would be helpful to see some more code and some of your input data to give you a more clear response.


Take a look at this: http://wiki.python.org/moin/UnicodeDecodeError. You probably have some string that can't be decoded.


A user of my product had this issue. Go into logging/init.py and add some print statements to print the record.dict. If you see unicode in the asctime that could be your issue.

0

精彩评论

暂无评论...
验证码 换一张
取 消