效果圖如下:
1:封裝ddlogger的類
myfilelogger.**件#import #import @inte***ce myfilelogger : nsobject
@property (nonatomic, strong, readwrite) ddfilelogger *filelogger;
+(myfilelogger *)sharedmanager;
@end
myfilelogger.m檔案這邊是設定24小時進行記錄乙個檔案#import "myfilelogger.h"
@implementation myfilelogger
#pragma mark - inititlization
- (instancetype)init
return self; } #pragma mark 單例模式 static myfilelogger *sharedmanager=nil; +(myfilelogger *)sharedmanager ); return sharedmanager; } #pragma mark - 配記日誌型別 - (void)configurelogging #pragma mark - 初始化檔案記錄型別 - (ddfilelogger *)filelogger return _filelogger; } @end
2:出進異常進行記錄
myexceptionhandler.**件#import #import @inte***ce myexceptionhandler : nsobject
+ (void)setdefaulthandler;
+ (nsuncaughtexceptionhandler *)gethandler;
+ (void)takeexception:(n***ception *) exception; @end
#import "myexceptionhandler.h"這個檔案也是當出現異常會執行void uncaughtexceptionhandler(n***ception * exception)
@implementation myexceptionhandler + (void)setdefaulthandler + (nsuncaughtexceptionhandler *)gethandler + (void)takeexception:(n***ception *)exception @end
#import #import #import #import "myexceptionhandler.h"
@end
static const int ddloglevel = log_level_verbose;
//初始化
[myexceptionhandler setdefaulthandler];
這邊重點是設定ddlog的記錄等級ddloglevel,以及上面兩個檔案的初始化[myexceptionhandlersetdefaulthandler];self.logger=[[myfileloggeralloc]init];
實現上面的**已經能夠記錄異常的內容;
4:建立乙個錯誤的異常**
- (void)viewdidload執行到這段**便記錄異常的內容,接著進行內容的展示,是以乙個列表展示每個日誌檔案,然後乙個詳細頁面進行展示;
5:日誌列表
loggertableviewcontroller.**件#import "loggerdetailviewcontroller.h"
@inte***ce loggertableviewcontroller : uiviewcontroller
@end
#import "loggertableviewcontroller.h"#define blsrecyclingrecordviewcontroller_cellidentifier @"mytablecell"
@inte***ce loggertableviewcontroller ()@property (strong, nonatomic) uitableview *mytableview;
@property (nonatomic, strong) nsdateformatter *dateformatter;
@property (nonatomic, weak) ddfilelogger *filelogger;
這邊把**分成兩部分,一部分是日誌檔案的列表,以及乙個清除功能,清除功能主要是對先前的檔案進行刪除的操作,讀取日誌的個數及日誌時間,日誌詳細內容
ddlogfileinfo
6:異常的詳細資訊頁面
loggerdetailviewcontroller.h**
#import @inte***ce loggerdetailviewcontroller : uiviewcontroller
- (id)initwithlog:(nsstring *)logtext fordatestring:(nsstring *)logdate;
@end
loggerdetailviewcontroller.m檔案7:如果有第三方其它記錄異常的使用,最好用debug模式本地記錄異常日誌,不然日誌只會被記錄在乙個地方#import "loggerdetailviewcontroller.h"
@inte***ce loggerdetailviewcontroller ()
@property (nonatomic, strong) nsstring *logtext;
@property (nonatomic, strong) nsstring *logdate;
@property (nonatomic, strong) uitextview *textview;
@end
@implementation loggerdetailviewcontroller
- (void)viewdidload - (void)didreceivememorywarning - (id)initwithlog:(nsstring *)logtext fordatestring:(nsstring *)logdate return self; } @end
//這樣便可以實現不管在哪個頁面出出異常都可以進行記錄,因為例項比較小,如果要源**可以留下郵箱統一進行傳送;友盟統計載入
[hybumanalyticshelper umanalyticstart];
#ifdef debug
//日誌框架(放在其它sdk下面 myexceptionhandler)
[myexceptionhandler setdefaulthandler];
#else
#endif
[myfilelogger sharedmanager];
日誌記錄功能
給自己的程式,加上記錄日誌的功能。以下是c 可以直接複製使用的。1 using system 2using system.collections.generic 3using system.text 4using system.io 56 namespace pingmock 7 3132 33 判...
異常處理日誌記錄
在我們工作當中無法避免bug,為了能快速解決bug,需要能精準快速的定位問題所在。這就需要我們將每次異常日誌完整的記錄下來,包括傳入的引數,在哪個類的哪個方法哪一行報錯的 在php中常使用gettrace來定位問題所在 function test try catch exception e 輸出 a...
iOS下日誌記錄
ios開發中,一般大家都會自定義乙個dlog的巨集來代替nslog,用來控制release下的log輸出。但是有以下幾個弊端 filelogger.logfilemanager.maximumnumberoflogfiles 20 filelogger.maximumfilesize 1024 10...