CocoaLumberjack使用以及日誌文件獲取

CocoaLumberjack使用以及日誌文件獲取

本文主要介紹之前項目中使用到CocoaLumberjack, 然後獲取CocoaLumberjack爲我們存儲的日誌文件, 在用戶反饋的時候, 將日誌文件打包上傳到服務器, 以便我們查找錯誤信息。

CocoaLumberjack使用

關於CocoaLumberjack的使用, 網上已經有很多講解了, 這裏貼幾篇文章供大家參考:

CocoaLumberjack 和 XcodeColors 的安裝和使用

iOS開源項目之日誌框架CocoaLumberjack

利用 CocoaLumberjack 搭建自己的 Log 系統

CocoaLumberjack日誌獲取

這裏主要是講解怎麼獲取CocoaLumberjack爲我們保存的日誌文件, 其實使用起來也非常方便, 主要是利用DDFileLogger來獲取沙盒中保存的文件:

    //獲取DDLog打印的日誌
    DDFileLogger *fileLogger = [[DDFileLogger alloc] init];
    //獲取log文件夾路徑
    NSString *logDirectory = [fileLogger.logFileManager logsDirectory];
    DDLogDebug(@"%@", logDirectory);
    //獲取排序後的log名稱
    NSArray <NSString *>*logsNameArray = [fileLogger.logFileManager sortedLogFileNames];
    DDLogDebug(@"%@", logsNameArray);

通過以上的方式, 我們就可以獲取日誌文件的目錄, 以及每個日誌文件的名稱, 然後接下來要做的就是講所有日誌文件打包上傳到服務器, 一般而言, 我的做法就是講日誌文件打包成zip文件, 然後上傳到服務器, 接下來就是怎麼打包的問題?

ZipArchive的使用

關於ZipArchive的更多信息, 大家可以在github上查找, 倉庫地址:https://github.com/mattconnolly/ZipArchive, 可以查看相關信息。

這裏還有一篇關於 iOS中使用ZipArchive 壓縮和解壓縮文件的文章, 具體介紹了怎麼使用ZipArchive壓縮和解壓文件

接下來具體介紹我是怎麼使用的:

//創建zip文件
    ZipArchive *logZip = [[ZipArchive alloc] init];
    //zip文件路徑
    NSString *logZipPath = [logDirectory stringByAppendingString:@"/feadbackLog.zip"];
    if ([logZip CreateZipFile2:logZipPath]) {
        DDLogDebug(@"創建zip成功");
        //添加log文件
        [logsNameArray enumerateObjectsUsingBlock:^(NSString * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
            //使用log本身的名字命名
            [logZip addFileToZip:[logDirectory stringByAppendingString:[NSString stringWithFormat:@"/%@", obj]] newname:obj];
        }];
    }else{
        DDLogDebug(@"創建zip失敗");
        [logZip CloseZipFile2];
        //返回爲空
        return nil;
    }
    //關閉
    [logZip CloseZipFile2];

我主要是結合CocoaLumberjack相關的信息, 在CocoaLumberjack存儲日誌的目錄下, 創建zip文件, 然後將log文件加入到zip包中, 最後可以根據zip包的地址, 獲取zip包文件信息, 然後上傳到服務器, 這樣整個獲取過程和打包流程就結束了, 主要是利用CocoaLumberjack和ZipArchive兩個開源框架實現。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章