1. 程式人生 > >iOS通過Plist儲存離線除錯日誌

iOS通過Plist儲存離線除錯日誌

最近需要測試APP在iPhone沒連線USB情況下定位時間間隔的情況,固把nslog的日誌資訊儲存成本地Plist檔案,以便測試結束後查閱執行時的日誌。

一、新建一個儲存日誌的方法,引數為每次定位成功的時間(作為key),定位成功的地點(作為value):

-(void)mylog:(NSString*)logKey andValue:(NSString*)logValue{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectroy = [paths objectAtIndex:0];
    NSString *filename 
[email protected]
"test2.plist"; NSString *filePath = [documentsDirectroy stringByAppendingPathComponent:filename]; NSLog(@"filePath:%@",filePath); NSFileManager *file = [NSFileManager defaultManager]; NSMutableDictionary *dic; if ([file fileExistsAtPath:filePath]) { dic = [[NSMutableDictionary alloc] initWithContentsOfFile:filePath]; }else{ dic = [[NSMutableDictionary alloc] init]; } [dic setValue:logValue forKey:logKey]; [dic writeToFile:filePath atomically:YES]; }


二、在定位成功時呼叫mylog函式,以儲存定位成功的資訊:

-(void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{
    nowLocation = [locations lastObject];
    CLLocation *locationGCJ = [nowLocation locationMarsFromEarth];
    coordinate = locationGCJ.coordinate;
    CLGeocoder *geoCoder = [[CLGeocoder alloc] init];
    [geoCoder reverseGeocodeLocation:locationGCJ completionHandler:^(NSArray *placemarks, NSError *error) {
        if(placemarks.count > 0) {
            CLPlacemark *placemark = [placemarks objectAtIndex:0];
            address =placemark.name;
            NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
            [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
            NSString *destDateString = [dateFormatter stringFromDate:[NSDate date]];
            [self mylog2:destDateString andValue:placemark.name];
        }
    }];
}

三、分別讓APP在模擬器和真機跑了一段時間後,我們來檢視下儲存的日誌資訊:

1、模擬器:通過my log函式裡列印的檔案地址 (我的為:filePath:/Users/jackxu/Library/Developer/CoreSimulator/Devices/B24F5E52-CB0D-41DF-8623-8CEDF21206FC/data/Containers/Data/Application/F61B5D71-1BD5-49D6-8B32-628E03434A8C/Documents/test2.plist),選擇finder->前往->前往資料夾,輸入地址就行可訪問,如圖:


2.真機:真機下載一個iPhone Explorer,(下載地址:http://www.macroplant.com/iexplorer/),就可以檢視真機的檔案系統,如圖:




相關推薦

iOS通過Plist儲存離線除錯日誌

最近需要測試APP在iPhone沒連線USB情況下定位時間間隔的情況,固把nslog的日誌資訊儲存成本地Plist檔案,以便測試結束後查閱執行時的日誌。 一、新建一個儲存日誌的方法,引數為每次定位成

iOS通過dSYM檔案分析crash日誌

iOS通過dSYM檔案分析crash日誌 平常在開發的過程中,遇到到了Crash可以很容易的通過Xcode去定位Crash的位置,但是當我們的App釋出以後,遇到閃退就不可以通過Xcode去除錯了。當然現在也有很多產品可以線上分析,例如騰訊的bugly與友盟的錯誤分析。這些分析工具的最基本的地方還是

iOS 之持久化儲存 plist、NSUserDefaults、NSKeyedArchiver、資料庫

1.什麼是持久化? 本人找了好多文章都沒有找到滿意的答案,最後是從孫衛琴寫的《精通Hibernate:Java物件持久化技術詳解》中,看到如下的解釋,感覺還是比較完整的。摘抄如下:  狹義的理解: “持久化”僅僅指把域物件永久儲存到資料庫中;廣義的理解,“持久化”包括和資料庫相關的各種操作。&n

iOS 使用plist和歸檔儲存資料

1使用plist檔案儲存資料 首先要知道的是,使用plist儲存資料,只能儲存OC自帶的資料字典和陣列,無法儲存自定義的資料model,例子看info.plist的樣式就知道了 將資料儲存到plist檔案中 //獲取本地沙盒路徑 NSArray *path = NSSearchP

android開發 獲取logcat日誌並記錄(方便離線除錯)

案例:當我們的軟體安裝在手機上的時候,或許還需要知道整個軟體執行的情況,那麼我們就需要一種把軟體執行的狀況記錄下來,儲存在某個地方(本地檔案,以下就是解決方法 直接上程式碼: package com.ifeng.fhdt.service;  import java.io.BufferedReader; 

SpringBoot通過AOP儲存操作日誌

專案中的一些重要操作需要記錄操作日誌,以便於以後操作出問題進行追蹤是誰操作引起的。 pom.xml引入AOP依賴 <dependency> <groupId>org.springframework.boot</groupId> &l

ios在真機中將NSLog日誌存入檔案並儲存到document目錄

下面的方法都是在Appdelegate.m中 - (void)redirectNSLogToDocumentFolder{         NSString *fileName =[NSStringstringWithFormat:@"%@.log",[NSDat

[NSLog日誌]ios在真機中將NSLog日誌存入檔案並儲存到document目錄

儲存Log日誌- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { //當真機連線Mac

IOS 除錯日誌輸出

為某個外部附件開發應用程式的情況下,開發者無法用 Xcode 進行除錯或者用 GDB 檢視 NSLog 的輸出,定位和查詢 bug 變得非常困難。好在我們可以通過重定向,將標準的錯誤輸出stderr定向到檔案。     NSArray *paths = NSSearchPathForDirectorie

H5通過vConsole檢視真機除錯日誌

開發十年,就只剩下這套架構體系了! >>>   

通過DataWorks資料整合歸檔日誌服務資料至MaxCompute進行離線分析

開發十年,就只剩下這套架構體系了! >>>   

iOS 數據儲存--歸檔

sea 。。 property append direct mobile mas rect bsp 四種數據持久化方式 http://www.cocoachina.com/ios/20160617/16739.html //先把數據在model中歸解檔 。h @pro

iOS數據庫離線緩存思路和網絡層封裝

integer 離線 super mat mode dict 數據緩存 req center 一直想總結一下關於iOS的離線數據緩存的方面的問題,然後近期也簡單的對AFN進行了再次封裝。全部想把這兩個結合起來寫一下。數據展示型的頁面做離線緩存能夠有更好的用戶體驗

rsync通過服務同步/Linux系統日誌/screen工具

進程 incr allow 失敗 置配 配件 ins 二進制文件 auto rsync通過服務同步 這種方式可以理解為在遠程主機上建立一個rsync的服務器,在服務器上配置好rsync的各種應用,然後將本機作為rsync的一個客戶端連接的rsync服務器。下面就介紹一下如何

軟件開發的目錄規範/定制程序的入口/引用配置文件/引用自定義模塊/logging模塊/日誌繼承與propagate屬性/通過字典導入配置/日誌模塊在項目中的使用

clas common 邏輯 導入 字典 pro gpo 項目 日誌模塊 02.軟件開發的目錄規範單獨的文件放單獨的東西py文件src 程序的核心有關setting 配置有關common 常用功能的集合體文件夾lib        庫log      日誌conf 配

通過AOP攔截打印日誌,出入參數

耗時 日誌 觸發 params mod XML apach request 不能 import java.lang.reflect.Modifier; import javassist.ClassClassPath; import javassist.Class

Xamarin.Forms 中iOS通過URL Scheme判斷應用是否安裝

原因 turn EDA 策略 erro function 如果 style ace Xamarin.Forms 中iOS通過URL Scheme判斷應用是否安裝 在移動應用開發中,經常需要判斷一個app是否安裝,iOS中有什麽方式可以判斷app是否安裝呢? 這裏介紹通過Ur

通過 MySQL 二進制日誌恢復刪除的記錄

mysq type ado The from ins 語句 stop art 刪除 MySQL 表中的數據 mysql> use sbtest; mysql> select count(*) from sbtest1; +----------+ | count(

svn通過hook開啟修改提交日誌許可權pre-revprop-change

首先在伺服器開啟更改log的設定: 找到版本庫的hooks目錄, cp pre-revprop-change.tmpl pre-revprop-change chmod a+x pre-revprop-change svn自帶的hook已經寫好了,只要把它啟用就可以。 但是呢

SQLServer資料通過java儲存到MySQL中出現unicode編碼問題

雙資料來源將sqlserver中的資料匯出存入mysql時出現編碼問題,SQLServer的字集為unicode,而需要在mysql中存入utf-8的字集。   通過配置application.properties檔案,如下 #SQLServer資料庫 spring.datas