1

あるアクションでテキストデータをファイルに記録する小さなプログラムを作成しました。Puttyによってプログラムがデプロイされているリモートシステムにアクセスしています。シェルをシャットダウンしても実行し続けるように、nohupを使用してプログラムを実行しました。シェルにログインするまで、データのログを記録し続けます。ただし、シェルを終了するとすぐに、ログファイルへの書き込みが停止します。私のプログラムは、ログファイルに書き込まないというだけで実行を続けます。ロギングにJava1.6+ slf4j+log4jを使用しています。OSはUbuntuです。

助けていただければ幸いです。

編集: 私のlog4j.properties

log4j.rootLogger=DEBUG

log4j.appender.AdminFileAppender=org.apache.log4j.DailyRollingFileAppender
log4j.appender.AdminFileAppender.File=pdmLogs.log
log4j.appender.AdminFileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.AdminFileAppender.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss,SSS} -- %p %t %c - %m%n

log4j.appender.ReportFileAppender=org.apache.log4j.ConsoleAppender
log4j.appender.ReportFileAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.ReportFileAppender.layout.ConversionPattern=%d{dd MMM yyyy HH:mm:ss,SSS} -- %p %t %c - %m%n

log4j.logger.com.xxx.xxx.yyy=ReportFileAppender,AdminFileAppender
log4j.logger.com.xxx.xxx.zzz=ReportFileAppender,AdminFileAppender

私が実行しているコマンドは次のとおりです。

nohup java -cp jarfile.jar com.xxx.xxx.yyy.Main &
4

2 に答える 2

1

構成を次のように変更してみてください。

log4j.rootLogger=DEBUG, AdminFileAppender
...
于 2011-06-15T06:29:36.907 に答える
0

プログラムをどのように実行しますか?プログラムを実行した後、実行中のプロセスのリストにそれが表示さps -ef | grep <process-id>れますか?念のために言っておきますが、プログラムは入力を待っているときにいつでもブロックされませんか?また、プロセスの終了値を確認してください。

于 2011-06-15T04:27:57.753 に答える