何かをログに記録するだけの DemoServer プロジェクトがあり、LogServer という別のプロジェクトを作成したとします。これが私がやりたいことです。両方のプロジェクトを同時に実行します。DemoServer が実行されているため、ログを記録し続けます。LogServer プロジェクトでは、DemoServer が生成するログにアクセスし、1 分ごとに新しいテキスト ファイルに保存できるはずです。これを行うのはこれが初めてなので、2 つのプロジェクトがどのように通信するのかを理解するのは難しいと思いますか? 誰かがこれを達成する方法を詳しく説明できますか? 問題の解決に役立つリンクも投稿してください。
2 に答える
1
Javaで実装するのが非常に簡単で、後でDemoServerとLogServerが異なるマシン上にある場合にも使用できるローカルソケットを使用します。
開発は非常に簡単です。
- 独自の
LogMessage
クラスを作成する - TCPソケットを使用して、単純なクライアント/サーバーインフラストラクチャを作成します。こちらをご覧ください
ObjectInputStream
とを使用してソケットストリームをラップし、シリアル化ObjectOutputStream
を使用できるようにします- あるプロセスから別のプロセスへのメッセージにログをカプセル化してログを送信するだけで、完了です。
于 2012-06-22T08:36:41.517 に答える
0
oVirtのソース コード (ソースを git clone できます) を詳しく調べて、ログ コレクター アプリケーションで何を行うかを確認することをお勧めします。
問題を解決するための多くのオプションがあります -
A. アプリケーションを共有ストレージ (つまり、nfs 共有) にログインさせます - アプリケーションとログ サーバーの両方がアクセスできるストレージ。cron ジョブは定期的なスクリプトを実行し、最後にアクセスされたファイル (たとえば、1 時間前) を、ログ サーバーがアクセスできるフォルダーにコピーします。
B. log4j を使用して、ログサーバーに収集させたいものをログサーバーにも送信する独自のアペンダーを作成します (セクション A で提案されているファイルを介して、またはその他の手段を介して)。この方法で制御できます。ログサーバーが実際に読み取ることができるものをカテゴリレベルに基づいて
于 2012-06-22T08:34:32.563 に答える