0

我正在尝试使用 SocketHandler 广播我的错误日志,如果我将它放在我的应用程序引擎项目的 main.py 中,它会很好用,但是如果我只是编写一个简单的独立 python 脚本并运行它,它不会t 似乎成功地广播了日志。

import logging
import logging.handlers

sh = logging.handlers.SocketHandler('localhost', logging.handlers.DEFAULT_TCP_LOGGING_PORT)
rootLogger = logging.getLogger('')
rootLogger.addHandler(sh)

logging.info(['Test', 'This', 'List'])
logging.info(dict(Test = 'Blah', Test2 = 'Blah2', Test3 = dict(Test4 = 'Blah4')))

我不知道如何进行调试。有任何想法吗?

4

1 回答 1

1

日志记录的默认级别是WARNING,因此INFO默认情况下不会看到消息。例如,您需要rootLogger.setLevel(logging.INFO)查看INFO消息,或将级别设置logging.DEBUG为查看所有消息。

更新:很难看出 logging.error() 如何无法输出 logging.info() 所做的事情,除非在 logging.error() 调用期间涉及过滤器或错误。请发布一个可运行的脚本,以演示使用文档中描述的日志套接字服务器运行时的问题。

进一步更新:日志记录不会自动捕获异常。要记录异常,开发人员通常要做的是使用try: except:块并调用logging.exception(...)异常处理代码。

于 2013-09-06T22:03:47.203 回答