2017-06-15 37 views
-1

我想存儲執行處理http請求的python代碼的痕跡。在Python中存儲http請求的痕跡

我們使用Python和Django。

這種情況下的痕跡是什麼?

我想有這對所有跟蹤的HTTP請求:

  • request.META,
  • request.POST
  • request.GET中

對於每一絲有N次代碼執行的棧跟蹤。在第一步中,將已知的python traceback存儲爲字符串就足夠了。在第一步中,變量的值不需要存儲。

堆棧跟蹤可以由管理程序線程創建,也可以通過源代碼中的方法調用顯式創建。在第一步中顯式就足夠了,主管線程可以稍後完成。

這些痕跡是可選的,僅用於調試和分析。他們不需要處理http請求。

這怎麼解決?

是否缺少了解這個問題?如果,是的,請發表評論。

更新

  • 我想要什麼來實現呢?我想有一個更好的方法來調試生產系統中的錯誤。我想知道發生錯誤之前發生了什麼。
  • 所有http請求?我想我想每分鐘存儲一條蹤跡。我想我會在N周後刪除這些數據。
+0

你想實現什麼?您是否想要在處理HTTP請求時獲取所有調用方法的日誌? –

+0

@AaronDigulla感謝您的反饋。我更新了這個問題。一切都清楚了嗎?如果沒有,請留下第二條評論。 – guettli

+3

您可以查看https://github.com/getsentry/sentry,這是用於記錄錯誤的專用解決方案。另外它有一個手動記錄數據的方法''raven'客戶端 –

回答

1

從評論

你可以看看https://github.com/getsentry/sentry這是記錄錯誤專用的解決方案移動。另外它還有一種使用烏鴉客戶端手動記錄數據的方法。

+0

我希望StackOverflow警察不會吸引我們....我的問題最終成爲軟件推薦的問題....保持冷靜,不要失去幽默感:-) – guettli

+1

@guettli謝謝。我也這樣希望! –

2

有兩種方法可以做你想做的。一個叫做「追蹤」,另一個叫「伐木」。

跟蹤意味着你有一些軟件(如trace module),它允許你創建的統計數據,其方法被調用多久,有什麼方法參數,調用誰的人,等

使用跟蹤,您需要配置跟蹤哪些方法/函數調用。設置起來很快,但無法查看方法/功能。這有點愚蠢。

此外,您必須編寫自己的工具來分析跟蹤文件以瞭解它們。

日誌記錄更加手動。您需要配置日誌框架,然後在有趣的地方調用日誌方法。這可以讓你看到局部變量。您可以用有用的方式格式化邏輯數據結構等。

這意味着日誌功能更強大,但需要更多手動工作才能設置。 學習如何進行正確的日誌記錄(不會太多,太少)也需要一些時間。但是日誌記錄已經帶有許多強大的工具(日誌查看器,日誌文件輪換以避免磁盤已滿)。

+0

謝謝你解釋這個。我喜歡這個高層次的介紹。我想重塑這方面的解決方案。我是第一個想要跟蹤我的django應用程序如何處理http請求的人? – guettli