我有一个Java独立程序,计划每10分钟运行一次cron
我想在日志文件中捕获/写入由此Java程序引发的错误,并且还将其作为单独的错误文件(MyJavaStandalone.err)。
我知道下面的命令:
错误redirect到单独的文件,但不logging文件
/usr/java/jdk1.6.0/bin/java MyJavaStandalone >> MyJavaStandalone.log 2>> MyJavaStandalone.err &
日志和错误都被redirect到同一个日志文件,但是错误本身不会写入到单独的错误文件中
/usr/java/jdk1.6.0/bin/java MyJavaStandalone >> MyJavaStandalone.log 2>&1 &
试试这个:
/usr/java/jdk1.6.0/bin/java MyJavaStandalone 2>&1 >> MyJavaStandalone.log | tee -a MyJavaStandalone.err >> MyJavaStandalone.log &
你可以实现你想要的东西:
/usr/java/jdk1.6.0/bin/java MyJavaStandalone 3>&1 2>&1 1>MyJavaStandalone.log| tee -a MyJavaStandalone.log > MyJavaStandalone.err
它能做什么:
3>&1 ) 2>&1 ) 1>MyJavaStandalone.log ) tee将前一个命令的STDOUT(实际上是Java应用程序的STDERR)的STDOUT附加到日志文件(因此日志文件现在具有这两个stream),并将该stream复制到STDOUT