我正在使用nohup将java输出和错误追加到同一个日志文件。问题在于它会写入一个输出,然后它会覆盖日志文件中的错误并将输出擦除。Nohup追加输出和错误而不是覆盖
nohup命令是
nohup java Daemon 1000 >logs/wrapper.log 2>logs/wrapper.log &
这是我想登录wrapper.log从Daemon.java
System.out.println("This is output that should go to the file");
System.err.println("This is error that should go to the file");
但只有最后一条消息被写入文件中的消息。最合理的答案是要知道如何追加wrapper.log的输出和错误,而不是覆盖
任何想法
感谢
嗨,感谢您的回复。它似乎可行,但现在日志还包含nohup:忽略每次追加答案时都会污染日志的输出。还有一种方法,我可以把所有的控制台输出/错误/异常在Windows中运行一个Java程序时的日志文件。我知道我们可以在java中使用printstream来做到这一点,但有没有一个Windows控制台功能,它会记录下你刚刚显示的命令 – shujaat 2012-04-16 07:30:09
通常,如果nohup的输出是终端,它会创建一个nohup.out文件来保存输出,但这不是这里的情况。如果Java程序输出的唯一目的是记录日志,那么让Java以必要的模式打开日志文件本身,然后用bash脚本来包装重定向可能会更好。不幸的是,我对Windows下I/O的工作原理知之甚少。 – ormaaj 2012-04-16 07:43:19