【问题标题】:Background Running Process logging后台运行进程记录
【发布时间】:2013-10-29 07:06:58
【问题描述】:

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

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

提前致谢。

【问题讨论】:

    标签: java logging background-process nohup


    【解决方案1】:

    你可以使用

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

    只需replace System.outout

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

    【讨论】:

    • 对不起,它不是我编码的。它非常紧急,因为高级太离开了并且邮件系统非常缓慢。我现在需要一种快速方法,然后必须查看 JMS。谢谢彼得。
    【解决方案2】:

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

     myApp > someFile.log
    

    或者最好附加到文件中

     myApp >> someFile.log
    

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

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

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

    【讨论】:

    • 从那里发送的邮件有 5 分钟发送邮件。我以前不知道它更快。
    猜你喜欢
    • 2019-09-11
    • 1970-01-01
    • 2021-04-06
    • 2011-05-30
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多