Pregunta

He creado un pequeño programa que registra datos de texto en un archivo en alguna acción. Estoy accediendo al sistema remoto donde el programa es implementado por Putty. He ejecutado el programa usando Nohup para que siga funcionando incluso si cierro mi caparazón. Hasta el momento en que estoy conectado al shell, continúa registrando los datos. Sin embargo, tan pronto como salgo de mi shell, deja de escribir en el archivo de registro. Mi programa aún continúa ejecutando solo que no escribe en el archivo de registro. Estoy usando Java 1.6 + SLF4J + LOG4J para registro. El sistema operativo es Ubuntu.

Agradecería algo de ayuda.

EDITAR:My 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

El comando que estoy ejecutando es:

nohup java -cp jarfile.jar com.xxx.xxx.yyy.Main &
¿Fue útil?

Solución

Intente cambiar su configuración a:

log4j.rootLogger=DEBUG, AdminFileAppender
...

Otros consejos

¿Cómo se ejecuta el programa? Después de ejecutar el programa, ¿lo ve entre la lista de procesos que se ejecuta haciendo ps -ef | grep <process-id> ¿Solo para asegurarse, su programa no bloquea en ningún momento esperando la entrada? Además, verifique el valor de salida de su proceso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top