我們?cè)陧?xiàng)目中日志記錄這塊也算是比較重要的,有時(shí)候用戶程序出什么問題,光靠服務(wù)器的日志還不能準(zhǔn)確的找到問題

現(xiàn)在一般記錄日志有幾種方式:

1、使用第三方工具來記錄日志,如騰訊的Bugly,它是只把程序的異常日志,程序崩潰日志,以及一些自定義的操作日志上傳到Bugly的后臺(tái)

2、我們把日志記錄到本地,在適合的時(shí)候再上傳到服務(wù)器

這里我要介紹的是第二種方法,第一種和第二種可以一起用。

假如現(xiàn)在有下面這樣的日志記錄要求

1、日志記錄在本地

2、日志最多記錄N天,N天之前的都需要清理掉

3、日志可以上傳到服務(wù)器,由服務(wù)器控制是否需要上傳

4、上傳的日志應(yīng)該壓縮后再上傳

實(shí)現(xiàn)思路

1、日志記錄在本地

  也就是把字符串保存到本地,我們可以用 將NSString轉(zhuǎn)換成NSData然后寫入本地,但是NSData寫入本地會(huì)對(duì)本地的文件進(jìn)入覆蓋,所以我們只有當(dāng)文件不存在的時(shí)候第一次寫入的時(shí)候用這種方式,如果要將日志內(nèi)容追加到日志文件里面,我們可以用NSFleHandle來處理

2、日志最多記錄N天,N天之前的都需要清理掉

  這個(gè)就比較容易了,我們可以將本地日志文件名定成當(dāng)天日期,每天一個(gè)日志文件,這樣我們?cè)诔绦騿?dòng)后,可以去檢測(cè)并清理掉過期的日志文件

3、日志可以上傳到服務(wù)器,由服務(wù)器控制是否需要上傳

  這個(gè)功能我們需要后臺(tái)的配合,后臺(tái)需要提供兩個(gè)接口,一個(gè)是APP去請(qǐng)求時(shí)返回當(dāng)前應(yīng)用是否需要上傳日志,根據(jù)參數(shù)來判斷,第二個(gè)接口就是上傳日志的接口

4、上傳的日志應(yīng)該壓縮后再上傳

  一般壓縮的功能我們可以使用zip壓縮,OC中有開源的插件 ZipArchive 地址:http://code.google.com/p/ziparchive/ (需要FQ)

具體實(shí)現(xiàn)代碼

我們先將ZipArchive引入到項(xiàng)目中,注意還需要引入系統(tǒng)的 libz.tbd 動(dòng)態(tài)庫,好下:

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式