后台运行进程记录

时间:2013-10-29 07:06:59

标签: java logging background-process nohup

我有一个java程序,它可以监听 ApacheMQ 并在后台运行并使用Linux Server。在这里,我使用System.out.println()进行日志记录,我必须将这些内容传输到文件中。

是否可能,完全是新手,我是否必须使用 Log4J nohup 将此sysout()值写入文件。

提前致谢。

2 个答案:

答案 0 :(得分:2)

您可以使用

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

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

// when finished.
out.close();

只有replace System.out out

我很惊讶您可以使用JMS,但不知道如何写出如何写入文件。

答案 1 :(得分:1)

正如您所观察到的,使用nohup可以将您重定向到文件。更一般地说,linux进程可以将其输出重定向到文件

 myApp > someFile.log

或者可能更好地附加到文件

 myApp >> someFile.log

这样当你重新开始时,你就不会失去以前的输出。

或者,如您所示,您可以让应用程序负责选择写入位置,然后使用Log4j等库而不是System.out非常有帮助。

我会使用两个 approches:我建议在任何严肃的应用程序中使用一些这样的日志库,我会从一个脚本启动我的应用程序,确保所有输出都记录在日志文件中,这样可以确保你应该使用一些写入stdout或stderr的库代码来保存输出。我喜欢创建输出文件,其名称包括应用程序启动的日期和时间,这样可以更容易地找到特定的输出。