国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 系統(tǒng) > iOS > 正文

iOS中控制NSLog輸出時(shí)機(jī)詳解

2019-10-21 18:43:27
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
-(void)saveDEBUGlog{  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);  NSString *documentDirectory = [paths objectAtIndex:0];    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];  [dateFormatter setDateFormat:@"yyyy_MM_dd_HH_mm_ss"];  NSString *currentDateStr = [dateFormatter stringFromDate:[NSDate date]];  NSString *fileName = [NSString stringWithFormat:@"testLog_%@.log",currentDateStr];    NSString *logFilePath = [documentDirectory stringByAppendingPathComponent:fileName];  // 先刪除已經(jīng)存在的文件  NSFileManager *defaultManager = [NSFileManager defaultManager];  [defaultManager removeItemAtPath:logFilePath error:nil];    // 將log輸入到文件  freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stdout);  freopen([logFilePath cStringUsingEncoding:NSASCIIStringEncoding], "a+", stderr);}

這個(gè)方法主要是調(diào)用 freopen 這個(gè)方法來(lái)寫(xiě)入, 其中 stdout 和 stderr 囊括了 iOS 大部分的異常輸出。

2. 根據(jù) Bool 值控制 log 輸出

用戶在使用 app 遇到各種各樣的問(wèn)題,當(dāng)自己以及測(cè)試團(tuán)隊(duì)不好定位原因的時(shí)候,能將用戶把關(guān)鍵點(diǎn)的 log 發(fā)送過(guò)來(lái)是最好的分析方法了。但是如何將 app 運(yùn)行過(guò)程中的 log 截取一部分保存呢?像開(kāi)關(guān)一樣能夠控制 log 的讀寫(xiě)呢?通過(guò)閱讀 MQTTLog 源碼發(fā)現(xiàn)獲得的靈感。

首先對(duì) NSLog 進(jìn)行下宏替換,項(xiàng)目中統(tǒng)一使用 SLOG 來(lái)進(jìn)行輸出

#define SLOG(fmt, ...) if (reportLoggerIsOpen) NSLog((@"%s [Line %d] " fmt), __PRETTY_FUNCTION__, __LINE__, ##__VA_ARGS__)
從宏定義可以看出,reportLoggerIsOpen 是控制 Log 輸出的開(kāi)關(guān),對(duì)于reportLoggerIsOpen的定義,在 h 文件中先 extern 聲明這個(gè)變量,然后再 m 文件中去實(shí)現(xiàn)。

.h 文件

#import <Foundation/Foundation.h>extern BOOL reportLoggerIsOpen;.m 文件BOOL reportLoggerIsOpen = NO;+ (void)setLogOpen:(BOOL)open {  reportLoggerIsOpen = open;}

通過(guò) setLogOpen 這個(gè)方法,就能夠收放自如的控制日志寫(xiě)入了。比如你需要抓取登錄模塊的日志,那么就在登錄前傳入 true,登錄完畢后,傳入 false,即可只保留登錄模塊的日志了。


注:相關(guān)教程知識(shí)閱讀請(qǐng)移步到IOS開(kāi)發(fā)頻道。
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 彩票| 武功县| 连山| 政和县| 邹城市| 出国| 邹城市| 韶山市| 延长县| 准格尔旗| 顺义区| 苍溪县| 伊吾县| 平潭县| 胶南市| 青浦区| 辛集市| 腾冲县| 新邵县| 诸暨市| 南城县| 金塔县| 灵宝市| 天祝| 望城县| 新津县| 化隆| 台中县| 龙井市| 上栗县| 苍南县| 宿迁市| 丹阳市| 阿城市| 富锦市| 卓尼县| 广州市| 望都县| 平原县| 榕江县| 海淀区|