0

ApacheMQをリッスンしてバックグラウンドで実行し、Linux サーバーを使用している Java プログラムを持っています。ここでSystem.out.println()はログに使用しており、それらの内容をファイルに転送する必要があります。

可能ですか、これは完全に初心者であり、Log4Jまたはnohupを使用してこのsysout()値をファイルに書き込む必要があるかどうか。

前もって感謝します。

4

2 に答える 2

2

使用できます

PrintWriter out = new PrintWriter("my-output.txt");

// write text.
out.println("hello world");

// when finished.
out.close();

ちょうどreplace System.out_out

JMS を使用できることに驚いていますが、ファイルへの書き込み方法を理解する方法がわかりません。

于 2013-10-29T07:13:06.333 に答える
1

ご覧のとおり、 nohup を使用すると、ファイルにリダイレクトされます。より一般的には、Linux プロセスはその出力をファイルにリダイレクトできます。

 myApp > someFile.log

または、ファイルに追加する方が良いかもしれません

 myApp >> someFile.log

再起動したときに以前の出力が失われないようにします。

または、あなたが示すように、書き込み先の選択をアプリに任せることができ、System.out の代わりに Log4j などのライブラリを使用すると非常に役立ちます。

私は両方のアプローチを使用します: 深刻なアプリケーションではそのようなロギング ライブラリを使用することをお勧めします。すべての出力がログ ファイルにキャプチャされるようにするスクリプトからアプリケーションを開始します。出力が保持される stdout または stderr。アプリが起動された日付と時刻を名前に含む出力ファイルを作成するのが好きです。これにより、特定の出力を簡単に見つけることができます。

于 2013-10-29T07:14:19.667 に答える