2012-12-06 52 views
0

我正在開發一個使用Django的應用程序,其工作原理類似於項目經理。出於這個原因,系統應該能夠存儲關於一切的信息。當我說出一切時,我指的是用戶所做的動作,執行某個動作時發生的錯誤等。 我有一個類Log和其中一個屬性叫做action_type,這個屬性指定剛發生什麼樣的動作。我應該有5個種類型:在Web應用程序上創建日誌

信息:此日誌存儲與用戶的操作,如創建項目的信息,創建其他用戶等

DEBUG:應存儲由開發人員提供的評論,以便他們檢測錯誤。

錯誤:表明,發生在系統錯誤,但是它們不會影響系統的功能。

警告:這是潛在的破壞行爲。

FATAL:意想不到的錯誤,異常和安全漏洞。

我只能想出INFO的邏輯日誌。

你能告訴我一些合理的日誌,我應該包括在這個和其他類別?

+0

看看這個http://simonwillison.net/2008/May/22/debugging/ – Chipmunk

回答

1

答案將在很大程度上取決於你的應用程序做什麼,但我的基本做法是這樣的:

每次你準備好記錄事件,只是想想事件和它所屬的很清楚。它殺了你的應用程序?這是致命的。它阻止某些東西工作正常嗎?這是一個錯誤。 可能它阻止某些東西工作,這次我們是否幸運?這是一個警告。有人關心嗎?信息。否則,如果您仍然需要記錄它,它必須用於調試目的。

在您的特定環境中,聽起來您可能只會嘗試記錄用戶操作。如果是這種情況,那麼唯一可能致命的行爲就是那些你沒有提供撤消選項的行爲(或者,如果用戶能夠通過你的訂購鋼琴工作臺和一段強壯的繩索應用)。我也無法想象任何來自用戶操作的調試級日誌。因此,我假設除了用戶操作之外,您還將記錄代碼級事件。

FATAL:這應該只出現在登錄時你的應用程序實際上崩潰,並且可能沿着500個響應。你可能會在你的wsgi應用程序中產生這些內容,只有當進程本來會死的時候。

錯誤:可能與http錯誤響應綁定。這通常是由您的應用程序之外的某些內容導致的錯誤。在你的代碼中發生的事情可能是預期的,並且是警告級別,或者是意想不到的,並且是致命的。錯誤可能是用戶在URL中輸入錯誤,表單提交時發生驗證錯誤或驗證錯誤時的404錯誤。從另一個方面來說,錯誤可能會從您聯繫的遠程Web服務或操作系統的IO錯誤返回。

警告:的東西不破壞任何東西,但如果你堅持下去,可能咬你。例子是使用不推薦的API和任何地方只有默認的工作(時區,字符編碼等)。也許某些輸入值也會導致警告,例如過去設置截止日期。

信息:一般,健康的操作。有人創建了一個數據庫行,創建一個帳戶,登錄或退出,一個插座被成功打開,等

DEBUG(一個新的項目或任務):它說什麼。一旦代碼正常工作,您通常會關閉輸出。方法進入/退出,對象實例化,代碼中不同點的字段值,計數器。無論你需要弄清楚爲什麼你的程序現在正在崩潰,當你工作。

+0

非常感謝!這正是我需要的! – chamini2

相關問題