2012-01-04 10 views
3

私はOS X用のアプリケーションを作成しています。分析/トラブルシューティングのために、私たちのサーバに戻すためにログからメッセージを取得する必要があります。私はApple System Log(ASL)機能を使って私が望むものを得ることができますが、現在のセッションのログメッセージだけを取得したいと考えています。Cocoa(OS X)アプリケーションの開始時間を決定する方法

// now minus one second 
    NSDate *startTime = [NSDate dateWithTimeIntervalSinceNow:-1]; 

しかし、システムがアプリを起動したときの、より正確な記録を持っている可能性がある場合思っていた:私は私のAppDelegateのinitメソッドに時間をつかむことができました。私はNSProcessInfoを見てきましたが、関連性のあるものは表示されません。プロセスの開始時刻を決定する方法はありますか?アプリケーション自体に時間を記録する以外の方法はありますか?

答えて

7

私は、これはOS Xで動作しますが、C標準ライブラリが経過秒数を取得するためにCLOCKS_PER_SECと一緒に使用することができ<time.h>ヘッダー内clock()機能を提供していますかどうかを確認するためにMacが便利を持っていませんあなたのプログラムが起動した時刻。

EDIT

これはあなたのプログラムの立ち上げから1秒以内にあなたの時間を取得し、どの時点で関係なく、あなたはそれを呼び出す必要があります。

NSDate *startTime = [NSDate dateWithTimeIntervalSinceNow:-clock()/CLOCKS_PER_SEC]; 
+0

これは本当に上の任意の利点を提供していません。 OPに言及するNSDateベースのアプローチ。私は彼自身が打ち上げ時に日付を保存することなく、アプリの打ち上げのシステムの記録を読む方法を探していると思う。 –

+2

@AndrewMadsen That * is * clock()は何ですか - リンクのドキュメントに従って、 "プログラムが起動してから経過したクロックティック数を返します。"しかし、名前は誤解を招いています。 – dasblinkenlight

+0

この方法では、少なくとも私が以前使用していたものよりもアプリの開始時間をより正確に測定できます。ありがとう! – Jonukas

関連する問題