iOSデバイスのNSLog出力をファイルにリダイレクトするための答えはhereです。これはうまくいきます。問題は、デバイス上のコンソールに表示されなくなることです。私が本当に気に入っているのは、stderrストリームをコンソールとファイルの両方にteeする方法です。誰かがそれをどうやって考えているのですか?ファイルとコンソールの両方にiPhoneのstderrを書き込みます。
答えて
別のスレッド(NSLog() to both console and file)で受け入れ可能な回答が見つかりました。その答えをSaileshへ
if (!isatty(STDERR_FILENO))
{
// Redirection code
}
ありがとう:
ソリューションは、デバッガが検出されない場合にのみ、このように、ファイルにリダイレクトすることがあります提供しました。
このif文はどこに書きますか?アプリケーションデリゲートで、または各ビューコントローラにそれを記述する必要がありますか? – Max
stderrをファイルにリダイレクトするコードをカプセル化するには、このif文を記述する必要があります。 –
ファイルディスクリプタをfreopen()
にすると、そこからデータディスクを読み込んで、データを読んだりすることができます。 thisからのいくつかのアイデアはあなたに役立つでしょう。
標準出力に書き戻すか、/dev/console
に直接書き込むことができます。 iPhoneで/dev/console
を開こうとしたことは一度もありませんでしたが、サンドボックスの外にあっても可能です。私は、アプリレビュープロセスがそれをどのように扱うかはわかりません。
また、TCPソケットにリダイレクトして、リモートtelnetクライアントで表示することもできます。このようにXCodeの必要はありません!基本的
:
オブジェクト - C静的メソッドを呼び出し、標準C関数の作成:
void tcpLogg_log(NSString* fmt, ...) { va_list args; va_start(args, fmt); [TCPLogger tcpLog:fmt :args]; va_end(args); }
静的オブジェクト - C法:
(void)tcpLog:(NSString*)fmt :(va_list)args { NSLogv(fmt, args);
}をif(sharedSingleton != nil && sharedSingleton.socket != nil) { NSString *time = [sharedSingleton.dateFormat stringFromDate:[NSDate date]]; NSString *msg = [[NSString alloc] initWithFormat:fmt arguments:args]; mach_port_t tid = pthread_mach_thread_np(pthread_self()); NSString *str = [NSString stringWithFormat:@"%@[%X]: %@\r\n", time, tid, msg]; NSData *data = [str dataUsingEncoding:NSUTF8StringEncoding]; [sharedSingleton.socket writeData:data withTimeout:NETWORK_CLIENT_TIMEOUT_PERIOD tag:0]; }
は、その後、あなたの.PCHファイルに、より多くの詳細がTCPソケットを処理するために必要とされている(もちろん)
define NSLog(...) tcpLogg_log(__VA_ARGS__); void tcpLogg_log(NSString* fmt, ...);
のNSLogを上書きするために以下の行を追加します。作業ソースコードは以下のサイトから入手できます。
- 1. ファイルの読み取りと書き込みの両方を行います。
- 2. 読み込みと書き込みの両方を行うクラスの名前
- 3. javacコンパイラはどのようにファイルとコンソールの両方に出力を書き込むには?
- 4. ファイル読み込みと書き込み
- 5. ファイルにコンソール行を書き込む
- 6. iPhoneでのテキストファイルの書き込みと読み込み
- 7. iPhone dev - オブジェクトの配列をファイルに書き込み/読み込み
- 8. コンソールとファイルの両方へのNSLog()
- 9. ローカルファイルからの書き込みと読み込みiPhone
- 10. ファイルへの読み書きの高速読み込みと書き込み
- 11. スレッドとファイル書き込み
- 12. Log4jをコンソールに書き込む方法
- 13. コンソールのcharへの書き込み、最も速い方法
- 14. ファイルへのC++の読み込みと書き込み
- 15. 出力ストリーム3(stdout、stderr)に書き込み
- 16. ログファイルとコンソールへの出力の書き込み
- 17. コンソール以外のアプリケーションプロジェクトからコンソールに書き込む方法
- 18. ファイルへの書き込み
- 19. iOSファイルの書き込み
- 20. ファイルへの書き込み
- 21. ループで計算を行うと、コンソールへの書き込みは遅くなりますが、ファイルへの書き込みは遅くなります。
- 22. 書き込み/に/ファイル
- 23. plistファイルへの読み込みと書き込み
- 24. log4perlはどのようにしてSTDERRとファイルに同時に書き込むことができますか?
- 25. オーディオユニットとファイルへの書き込み
- 26. ファイルから読み込み、Javaのファイルに書き込む
- 27. floatとdoubleの両方からファイルを読み込みますか?
- 28. オンラインSQLiteデータベースの読み込み/書き込みiPhone
- 29. htmlファイルに書き込み、iphoneに表示
- 30. iphone:書き込み時のラベル値。
[NSLog()コンソールとファイルの両方](http://stackoverflow.com/questions/9619708/nslog-to-both-console-and-file) – AechoLiu