后台运行进程日志记录



我有一个Java程序,它侦听ApacheMQ并在后台运行,并且正在使用Linux服务器。在这里,我使用System.out.println()进行日志记录,并且必须将这些内容传输到文件中。

有没有可能,我对此完全不熟悉,我是否必须使用 Log4Jnohup 将此sysout()值写入文件。

提前谢谢。

您可以使用

PrintWriter out = new PrintWriter("my-output.txt");
// write text.
out.println("hello world");
// when finished.
out.close();

只需与out replace System.out

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

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

 myApp > someFile.log

或者更好地附加到文件中

 myApp >> someFile.log

这样当您重新启动时,您就不会丢失以前的输出。

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

我会同时使用这两种方法:我建议在任何严肃的应用程序中使用一些这样的日志记录库,并且我会从一个脚本启动我的应用程序,该脚本确保所有输出都捕获在日志文件中,这确保了如果您使用一些写入 stdout 或 stderr 的库代码,输出被保留。我喜欢创建名称包括应用程序启动日期和时间的输出文件,这样可以更轻松地找到特定的输出。

最新更新