我有一个java程序,它可以监听 ApacheMQ 并在后台运行并使用Linux Server。在这里,我使用System.out.println()
进行日志记录,我必须将这些内容传输到文件中。
是否可能,完全是新手,我是否必须使用 Log4J 或 nohup 将此sysout()
值写入文件。
提前致谢。
答案 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的库代码来保存输出。我喜欢创建输出文件,其名称包括应用程序启动的日期和时间,这样可以更容易地找到特定的输出。