簡體   English   中英

Google App Engine錯誤未顯示在使用Flask的StackDriver錯誤報告中

[英]Google App Engine Errors not showing up in StackDriver Error Reporting using Flask

我正在使用Google App Engine標准環境來托管python-flask-application,而我遇到的問題是在StackDriver錯誤報告中顯示錯誤。 默認情況下,Google App Engine會將錯誤記錄到StackDriver錯誤報告中,但事實並非如此。

我之前在StackDriver錯誤報告中出現過錯誤,但我無法重現。 這些錯誤似乎直接發生在Server-Errors部分,而不是Application-Errors。 但對我來說,兩者都記錄在StackDriver錯誤報告中似乎是合乎邏輯的。

我做了一些調試,以使它使用routes /error/500 結果如下:

  • 錯誤顯示在Google App Engine概述中: 所有Google App Engine錯誤
  • 兩者都在日志中可見: 日志中可見錯誤
  • 但StackDriver錯誤報告中沒有顯示任何內容: StackDriver錯誤報告中沒有錯誤

有人會知道為什么會這樣嗎?

更新:我發現使用flask.logger似乎是個問題。 使用logging工作正常並最終在StackDriver錯誤報告中(除了一些格式問題)。 兩者最終都會在記錄器中結束。 我使用的是logging.StreamHandler注冊到flask.logger使用addHandler 我最好的猜測是logging.StreamHandler的格式有問題。 進一步調查。

在使用Google App Engine SDK進行一些挖掘和調試之后,我發現GAE有一個日志記錄處理程序:

google.appengine.api.app_logging.AppLogsHandler

Google App Engine flask.logger一個注冊到logging ,但不會注冊到flask.logger 因此,如果您使用app.logger.error(my_error) ,它將不會注冊到StackDriver錯誤報告。

現在我手動注冊一個修復問題:

from google.appengine.api.app_logging import AppLogsHandler
app.logger.addHandler(AppLogsHandler())

app.logger.error(my_error)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM