0
我正在製作一個庫,可以在通過HTTPS PUT發送到服務器之前記錄Android應用中的錯誤和其他事件。這是可能的使用本地Log類 還是有更好的方法來做到這一點?支持批量上傳日誌將是一項獎勵,但如果有必要,我很樂意自行實施。Android應用內日誌記錄
基本上就是我要找的是可以被配置爲日誌發送到服務器,而不是保存至本地日誌記錄器,並且可以在後臺沒有顯著影響應用程序的性能執行此。
我正在製作一個庫,可以在通過HTTPS PUT發送到服務器之前記錄Android應用中的錯誤和其他事件。這是可能的使用本地Log類 還是有更好的方法來做到這一點?支持批量上傳日誌將是一項獎勵,但如果有必要,我很樂意自行實施。Android應用內日誌記錄
基本上就是我要找的是可以被配置爲日誌發送到服務器,而不是保存至本地日誌記錄器,並且可以在後臺沒有顯著影響應用程序的性能執行此。
創建您自己的記錄器類。假設你調用類「MyLogger
」,然後你可以創建一些方法模擬天生android的方法,如MyLogger.logI(name,text);
等
在您logI
方法,你可以打印到標準的Android日誌像往常一樣(Log.i(...);
),你也可以將日誌中的文本發送到您的http服務器。
如果您需要關於http請求的幫助,您應該查看apache commons
文檔以獲得良好的實現。您只需創建http請求,將數據添加到HttpPut
實例,然後將請求發送到服務器(以您認爲適合服務器的方式處理它)。確保你在AsyncTask
中執行它,否則如果你沒有使用後臺線程,你可能會減慢UI等。
感謝您的詳細解答 - 現在我知道從哪裏開始。我已經調查了使用'HttpClient',但使用一個'Service'日誌的上傳,具體爲[IntentService](http://developer.android.com/reference/android/app/IntentService.html)。 AsyncTask會更好嗎,還是隻有在上傳過程需要在完成後與UI進行交互時才需要? – caroline
與服務的危險在於它更在應用程序中一個獨立的實體 - 它有它自己的上下文等,你會好起來去爲一個的AsyncTask,因爲一旦完成,這將是它,你當然可以再次運行它下一個需要它 –
時間是有道理的,特別是因爲上傳,可以頻繁地進行。謝謝! – caroline