2012-01-24 1 views
10

IがのNSLogを使用すると、私は次のような出力を得る:NSLogのプレフィックスは何を意味しますか?

2012-01-24 17:05:32:860アプリ[21856:71939] {ログがここに}

I 'がいることを認識2012-01-24 17:05:32:860 'の日付は「App」はアプリ名ですが、「[21856:71939]」という意味はありません。誰かがそれが何で、どこでそれが生成されているかについて私に記入することはできますか?

私がしようとしているのは、読みやすいように行を整理することですが、 '[21856:71939]'は、整列の試みを混乱させるくらいの桁で変化します。 '[21856:71939]'の数字がどのように生成されたか分かっていれば、必要に応じてスペースを追加して、正しく整列させることができましたが、これは私の唯一のアイデアです。

任意の助けもいただければ幸いです:)

+0

私はこれについても興味があります。 –

答えて

14

21856がプロセスIDです。 71939はスレッドIDです。

あなたが使用して独自にログのこの部分を生成することができます

[NSString stringWithFormat:@"[%ld,%lx]", 
    (long) getpid(), 
    (long) pthread_mach_thread_np(pthread_self())]; 

編集2014年9月23日:

少なくともiOSの8でシミュレータ上で、 2番目の番号はスレッドのpthread_threadid_npになりました。

__uint64_t threadId; 
    if (pthread_threadid_np(0, &threadId)) { 
     threadId = pthread_mach_thread_np(pthread_self()); 
    } 

    [NSString stringWithFormat:@"[%ld,%llu]", (long) getpid(), threadId] 
+1

まだ有効です。ただし、これはシミュレータ上にない実際のデバイスでのみ機能します。 – batkuip

3

IIRC、21856は、プロセスPIDである、と71939はスレッド識別子のいくつかの並べ替えです。

0

これはスレッドIDですが、実際にどのように生成されているのかわかりません。

あなたはこの

pthread_mach_thread_np(pthread_self()) 

を使用して、それを自分でつかむことができるが、それはあなたが正しいライニングとそれを設定する方法を答えていません。デバッグ中は最後のタブ(ログナビゲータを表示)に移動し、デバッグアプリケーションをダブルクリックしてください。

関連する問題