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. log4j2はコンソールとファイルの両方に書き込まない
- 2. C#でコンソールとファイルの両方にコンソールouputを書き込む方法は?
- 3. ファイルの読み取りと書き込みの両方を行います。
- 4. stderrとstdoutを1つのファイルに書き出すだけでなく、stderrを別のファイルに書き込む
- 5. 読み込みと書き込みの両方を行うクラスの名前
- 6. Python - ファイルとコンソールの両方を同時に書き込む方法(Bashファイルから)
- 7. UNIXファイルの書き込みと書き込み以外の書き込み
- 8. iPhoneでのテキストファイルの書き込みと読み込み
- 9. なぜaws --versionはstderrに書き込みますか?
- 10. javacコンパイラはどのようにファイルとコンソールの両方に出力を書き込むには?
- 11. iPhone dev - オブジェクトの配列をファイルに書き込み/読み込み
- 12. Firebaseとコードの両方の書き込みルール
- 13. ローカルファイルからの書き込みと読み込みiPhone
- 14. テキストのファイルへの書き込みと書き込みR
- 15. stderrをstdoutにコンソールと2つのファイルにリダイレクトします
- 16. Java Swing JTextAreaは左右両方に書き込みます
- 17. ファイル読み込みと書き込み
- 18. ファイルにコンソール行を書き込む
- 19. コンソール出力をファイルに書き込む
- 20. ファイルへの書き込みと書き込み
- 21. Python:ファイルへの書き込みと書き込みエラー
- 22. コンソールとファイルの両方へのNSLog()
- 23. ファイルへの読み書きの高速読み込みと書き込み
- 24. ファイルに書き込んだ後にコンソールに書き込めません
- 25. シリアライゼーションとファイル書き込み
- 26. スレッドとファイル書き込み
- 27. C#Log4Netの両方のAppendersへの書き込み
- 28. gruntは、ファイルではなくコンソールにコンテンツを書き込みますか?
- 29. Log4jをコンソールに書き込む方法
- 30. 出力ストリーム3(stdout、stderr)に書き込み
[NSLog()コンソールとファイルの両方](http://stackoverflow.com/questions/9619708/nslog-to-both-console-and-file) – AechoLiu