【问题标题】:How to log exceptions in appengine?如何在 appengine 中记录异常?
【发布时间】:2011-08-22 03:12:40
【问题描述】:
try:
  #do something that raises an exception...
except:
  logging.error('Error Message')

我想在日志中显示的不仅仅是“错误消息”。我也想在日志中查看回溯,或者至少是什么异常。我该怎么做?

谢谢!

【问题讨论】:

  • 根据PEP8,你不应该真的有一个空的except: 子句,除非你重新raise-ing 错误。否则可能会引发意外异常,并且您的应用将继续运行,而不会意识到它处于完全软管状态。

标签: python google-app-engine logging error-handling error-logging


【解决方案1】:

logging.exception(msg[, *args])

在根记录器上记录级别为 ERROR 的消息。参数被解释为 debug()。异常信息被添加到日志消息中。该函数只能从异常处理程序中调用。

http://docs.python.org/library/logging.html#logging.exception

【讨论】:

  • 还有一个很棒的 App Engine 工具,名为 ereporter,它会每天向您发送一封包含应用异常情况的电子邮件。
【解决方案2】:

这是我用来记录整个堆栈跟踪的:

import traceback
try:
    # your code
except:
    stacktrace = traceback.format_exc()
    logging.error("%s", stacktrace)

【讨论】:

    【解决方案3】:

    我认为这应该对你有所帮助

    import logging
    
    try:
        #exception code
    except Exception as e:
        logging.error(e)
    

    【讨论】:

      【解决方案4】:

      您可以将日志记录详细信息设置为 Debug、Info、Warning、Error 或 Critical 并在您的应用程序中进行设置。 Debug 会给你很多细节。

      import logging
      logging.getLogger().setLevel(logging.DEBUG)
      

      您可以在 appengine Web 控制台的 /logs 下获取特定过滤器的日志。

      【讨论】:

        猜你喜欢
        • 2010-11-17
        • 1970-01-01
        • 2023-04-02
        • 2014-02-28
        • 1970-01-01
        • 2015-04-13
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多