2011-07-27 58 views
0

我正在製作一個庫,可以在通過HTTPS PUT發送到服務器之前記錄Android應用中的錯誤和其他事件。這是可能的使用本地Log類 還是有更好的方法來做到這一點?支持批量上傳日誌將是一項獎勵,但如果有必要,我很樂意自行實施。Android應用內日誌記錄

基本上就是我要找的是可以被配置爲日誌發送到服務器,而不是保存至本地日誌記錄器,並且可以在後臺沒有顯著影響應用程序的性能執行此。

回答

1

創建您自己的記錄器類。假設你調用類「MyLogger」,然後你可以創建一些方法模擬天生android的方法,如MyLogger.logI(name,text);

在您logI方法,你可以打印到標準的Android日誌像往常一樣(Log.i(...);),你也可以將日誌中的文本發送到您的http服務器。

如果您需要關於http請求的幫助,您應該查看apache commons文檔以獲得良好的實現。您只需創建http請求,將數據添加到HttpPut實例,然後將請求發送到服務器(以您認爲適合服務器的方式處理它)。確保你在AsyncTask中執行它,否則如果你沒有使用後臺線程,你可能會減慢UI等。

+0

感謝您的詳細解答 - 現在我知道從哪裏開始。我已經調查了使用'HttpClient',但使用一個'Service'日誌的上傳,具體爲[IntentService](http://developer.android.com/reference/android/app/IntentService.html)。 AsyncTask會更好嗎,還是隻有在上傳過程需要在完成後與UI進行交互時才需要? – caroline

+0

與服務的危險在於它更在應用程序中一個獨立的實體 - 它有它自己的上下文等,你會好起來去爲一個的AsyncTask,因爲一旦完成,這將是它,你當然可以再次運行它下一個需要它 –

+0

時間是有道理的,特別是因爲上傳,可以頻繁地進行。謝謝! – caroline