2016-09-16 69 views
5

iOS10では、NSlogは1024文字に制限されています。誰もが完全な文字列を出力する回避策を知っています。iOS10 NSLogは1024文字の文字列に制限されています

+0

分割文字列を1024文字のチャンクに分割し、それぞれ個別にログに記録します。 –

+1

解決策は良いですが、多くのログを使用するので実装が難しいようです。特にサーバーの応答は膨大であり、改行なしでJSONを記録するのが良いでしょう。 –

答えて

4

は、それは

+0

ライオンの作品に感謝します! –

+0

NSString * logMessage = [NSString stringWithFormat:@ "<古いメッセージをコピー>"]; printf( "%s"、[logMessage UTF8String]); –

+0

歓迎です....... :) – Lion

2

を働くこと

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

、のような私は、これは[NSLog on devices in iOS 10/Xcode 8 seems to truncate? Why?と同じ質問であると考え、その後の代わりNSLogprintfを試してみてください、あなたがしたい場合には、私はまた、ここに私の答えを投稿します代わりに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の機能を持っていないだろう、バンドル名前、およびスレッドの内容(シリアル化を含む)。

関連する問題