0

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

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

提前致谢。

4

2 回答 2

2

您可以使用

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

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

// when finished.
out.close();

只是replace System.outout

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

于 2013-10-29T07:13:06.333 回答
1

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

 myApp > someFile.log

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

 myApp >> someFile.log

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

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

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

于 2013-10-29T07:14:19.667 回答