1

我创建了一个小程序,它在某些操作上将文本数据记录到文件中。我正在访问由 Putty 部署程序的远程系统。我已经使用 nohup 运行了程序,这样即使我关闭了我的 shell,它也能继续运行。直到我登录到 shell 时,它才会继续记录数据。但是,一旦我退出我的 shell,它就会停止写入日志文件。我的程序仍然继续运行,只是它没有写入日志文件。我正在使用 Java 1.6 + slf4j+log4j 进行日志记录。操作系统是 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 回答