如何捕获从python日志记录模块引发的返回状态或异常

时间:2018-04-23 02:16:19

标签: python python-3.x python-3.6

我正在尝试将一些消息记录到日志文件中。记录器的输入恰好也是一些unicode字符串。

以下是一个示例代码:

import logging
logging.basicConfig(filename='ReviewReport.log',
                    filemode='w',
                    level=logging.INFO,
                    format='%(asctime)s - %(levelname)s - %(message)s')

myTestStr = 'My Str is DeltaΔ'

try: 
    logging.info(myTestStr )
except Exception:
    print('In except block....')
    #handle exception by encoding the string.
print('execute rest of the program')

当我这样做时,我在控制台上看到以下异常:

UnicodeEncodeError: 'charmap' codec can't encode character '\u0394' in position 49: character maps to <undefined>

我试了很多东西来理解为什么我的代码没有达到除了块之外。 '在block ....中没有被打印但是'执行程序的其余部分'被打印,这让我觉得当'myTestStr'没有记录到我的日志文件时,记录器实际上没有产生任何异常。

我的问题是:

  1. 除了块之外,为什么没有捕获UnicodeEncodeError?记录器模块不会引发任何异常。
  2. 了解logger是否成功将消息记录到文件的正确方法是什么。
  3. 在这里感谢任何支持。谢谢。

0 个答案:

没有答案