iPhoneアプリの場合、分析のためオンラインサービスに送信するために、デバッグデータをファイルに収集する必要があります。これは、ファイルハンドルに出力をstderr
に差し向け、適切な場合にファイルを送信することによって問題なく動作します。 (NSLog
の出力もstderr
になりますので、これはボード全体で機能します)。同じ方法でもstdout
で正常に動作します。ここでスウィフトスタンダードと単一ファイルへのスタウト
は、私は、ファイルへの保存を行う方法です。
freopen(cStringFilePath, "a+", stderr) // or stdout
上記が正しく、私は必要なファイルを閉じるためにを追跡UnsafeMutablePointer<FILE>
を返します。
ファイル にしかし、私はラインによって正しい時系列ラインで、stdout
とstderr
両方のコンテンツが必要になります。
これは、診断出力を生成するが、stderr
ではなくstdout
に書き込むサードパーティのフレームワークをデバッグしようとしているためです。
どのようにすればよいでしょうか?
いいえ、最後に使用したものだけをキャプチャするようです。 – Mundi
修正。それは働いているようだ。ワオ。しかしそれは安全ですか? 2つのストリームが同時にファイルにアクセスしようとするとどうなりますか? – Mundi
ええ、それは "安全"でなければなりません。つまり、クラッシュするべきではありませんが、バッファリングルールのために出力がインターリーブされることがあります。これらのファイル記述子でバッファリングがどのように起こるかを変更できると思いますが、私の頭の上のどのような部分がわからないのか分かりません。 –