2016-09-16 143 views
5

在iOS10中,NSlog限制爲1024個字符,任何人都知道打印完整字符串的解決方法。iOS10 NSLog限制爲1024個字符字符串

+0

將字符串拆分爲1024個字符塊並分別記錄每個字符。 –

+1

解決方案很好,但它似乎很難實現,因爲我們使用大量的日誌。特別是服務器響應非常巨大,並且不用換行符就可以記錄JSON。 –

回答

4

嘗試printf然後代替NSLog一樣,

printf("%s", [string UTF8String]); 

它可以工作

+0

感謝獅子的作品! –

+0

NSString * logMessage = [NSString stringWithFormat:@「」]; 012fprintf(「%s」,[logMessage UTF8String]); –

+0

不客氣....... :) – Lion

2

我認爲這是與[NSLog on devices in iOS 10/Xcode 8 seems to truncate? Why?一個同樣的問題,我也會在這裏發佈我的答案,如果你想改爲使用printf

這是一個臨時解決方案,因爲我認爲這是一個錯誤。

只需在全局頭文件中重新定義所有NSLOGprintf即可。

#define NSLog(FORMAT, ...) printf("%s\n", [[NSString stringWithFormat:FORMAT, ##__VA_ARGS__] UTF8String]); 
2

這個新Xcode8和塞拉利昂的「功能」迅捷的解決辦法...

func Log(_ format:String, _ args:CVarArg...) { 
    let output = withVaList(args, { (p) -> NSString in 
     NSString(format: format, arguments: p) 
    }) as String 
    print(output) 
} 

當然,這不會有NSLog的的,我們可能需要諸如時間戳功能,捆綁名稱和線程內容(包括序列化)。