2009-11-05 40 views
0

我一直在努力cURL腳本,我終於完成了,耶!基本上,現在,我抓住錯誤/成功消息並存儲它,但我應該如何存儲它?我應該將它存儲在.txt文件還是MySQL中。什麼是有效/常用的做法?對於存儲結果,我應該存儲在MySQL或.txt中嗎?

編輯: 我已經有一個MySQL數據庫。我不介意多花點時間。在閱讀答案後,聽起來好像我應該將它存儲在數據庫中(我想要一個新表格)。我應該將它作爲varchar存儲嗎?或者我應該創建一個SQLite數據庫只是爲了記錄錯誤?

+4

看起來這將取決於你想對結果做什麼。 – Stephen 2009-11-05 16:36:29

+0

就一般的錯誤日誌記錄而言,只要看一下普通的服務器設置就可以知道它是文本文件。 – Smandoli 2009-11-05 16:58:04

+0

@Smandoli 有趣... – Strawberry 2009-11-05 17:04:20

回答

1

這完全取決於您計劃如何處理結果。如果您只是想在發生問題時再查看,則文本文件可能會正常工作。但是,如果您希望能夠輕鬆創建報告或根據特定日期/時間搜索結果,那麼小型SQL數據庫可能會起作用。雖然我建議只使用SQLite,除非你每天要記錄大量的消息。

+0

+爲SQLite建議投票。如果MySQL尚未部署,我認爲SQLite肯定是首選。 – Smandoli 2009-11-05 16:56:47

+0

我應該爲此創建一個SQLite數據庫嗎?只是爲了錯誤日誌? – Strawberry 2009-11-05 16:58:46

+0

你在說「創建數據庫」,好像它是重要的東西。一個sqlite「數據庫」是非常輕量級的。它甚至用於在諸如firefox,amarok和其他許多應用程序中存儲首選項。它也用於嵌入式平臺。 – shylent 2009-11-05 18:08:46

0

如果你只是存儲錯誤/成功的消息,那麼一個成熟的關係數據庫系統似乎有點超過我。

0

如果您只是抓取錯誤/成功消息,只需將其存儲到日誌(文本)文件。特別是如果腳本沒有經常運行,並且您不需要在其他地方引用成功/錯誤消息。

0

我會去與數據庫。它不需要比文本文件更多的努力(實際上可以少得多),並且您可以獲得許多額外的功能。例如,讓頁面顯示這些錯誤不是很好嗎?也許有一些排序功能?前面的一點努力通常可以爲您節省相當大的麻煩。

在任何現代的網絡應用程序,你應該避免在文本文件中存儲任何東西。文本文件存儲庫幾乎是單向的(即,容易獲取數據,但不會太多以便將數據取出),除非您跳過一些環節來轉義消息,提供一致的分隔符等。沒有理由使用一個文本文件,正如我所說,它可以在稍後咬你。

+0

如果項目中已經部署了MySQL數據庫,那麼我同意一些資格。如果沒有,那麼這裏的理由就不那麼有說服力了。 – Smandoli 2009-11-05 16:52:10

0

除非您稍後有某種錯誤分析項目的宏偉計劃,否則請使用文本文件。更少的失敗點,更少的代碼,更少的頭痛。

請記住,如果您構建智能日誌文件(文本)格式,則可以在以後隨時將其放回數據庫中。

0

我想說這取決於你想要做什麼與錯誤信息。如果你只是想要快速和骯髒的東西,你可以用很少的努力編碼,我會去與文本文件。

但是,移動到數據庫有一些提供了很多好處。您可以從中檢索信息,並使用一點SQL以更好的方式顯示它。不過,我認爲這確實需要更多的編碼和部署工作。

所以,如果你只是想存儲錯誤,我說留在文本文件。如果你想要更高級的功能,我會花時間來設置數據庫。

0

如果您正在構建一個抓取成千上萬個鏈接的蜘蛛,並且您想跟蹤下載嘗試和/或每個抓取的URL的狀態,我會創建一個表來映射url以重試嘗試並最後一次嘗試的日期。我不會在數據庫中存儲錯誤消息,除非HTTP返回狀態比tinyint(1)代表成功更有用。

如果您正在爬取url的一小部分,只需要額外的診斷,我可能會堅持使用文本文件。文本錯誤日誌可以很容易地管理並被許多實用程序自動丟棄。