将 java 程序的所有输出重定向到日志文件
Redirect all output of the java program to log file
我已通过在 crontab
:
末尾保存此行来安排我的 jar
文件
30 12 * * * java -jar test.jar > test.log (I have also tried test.txt)
Cron 已启动作业,还创建了日志文件,但该文件中没有任何内容。知道为什么吗?我在我的程序中做 System.out.println()
。
我已经为每个人添加了对该文件的写入权限。
会不会在应用程序启动之前调度程序就崩溃了?当我通过执行 grep CRON /var/log/syslog
检查 crontab
的日志时,它给了我漂亮的输出,没有错误指示:
Sep 2 12:19:01 ip-172-31-18-162 CRON[2308]: (root) CMD (java -jar /opt/bitnami/apache-tomcat/webapps/apps/FullEmailReport/DJOF_FullEmail_DynamicContentReport_ScheduledPart.jar > /opt/bitnami/apache-tomcat/webapps/apps/FullEmailReport/data/app.txt)
尝试添加 2>&1 也将 System.err 重定向到文件:
30 12 * * * java -jar test.jar > test.log 2>&1
这是一个有点老的问题,但我认为它可能值得指出,因为没有人提到它...
cron 不知道您的 PATH,也不知道 java 在哪里。在我编写 Solaris shell 脚本的日子里,我们必须在 cron 中放置所有内容的完整路径。因为我不知道你的 java 安装在哪里,也不知道你的 test.jar 文件在哪里,所以我无法写出完整的确切命令,但它可能类似于:
30 12 * * * /usr/bin/java -jar /home/username/myTestStuff/test.jar > /user/username/myTestStuff/logfiles/test.log 2>&1
我已通过在 crontab
:
jar
文件
30 12 * * * java -jar test.jar > test.log (I have also tried test.txt)
Cron 已启动作业,还创建了日志文件,但该文件中没有任何内容。知道为什么吗?我在我的程序中做 System.out.println()
。
我已经为每个人添加了对该文件的写入权限。
会不会在应用程序启动之前调度程序就崩溃了?当我通过执行 grep CRON /var/log/syslog
检查 crontab
的日志时,它给了我漂亮的输出,没有错误指示:
Sep 2 12:19:01 ip-172-31-18-162 CRON[2308]: (root) CMD (java -jar /opt/bitnami/apache-tomcat/webapps/apps/FullEmailReport/DJOF_FullEmail_DynamicContentReport_ScheduledPart.jar > /opt/bitnami/apache-tomcat/webapps/apps/FullEmailReport/data/app.txt)
尝试添加 2>&1 也将 System.err 重定向到文件:
30 12 * * * java -jar test.jar > test.log 2>&1
这是一个有点老的问题,但我认为它可能值得指出,因为没有人提到它...
cron 不知道您的 PATH,也不知道 java 在哪里。在我编写 Solaris shell 脚本的日子里,我们必须在 cron 中放置所有内容的完整路径。因为我不知道你的 java 安装在哪里,也不知道你的 test.jar 文件在哪里,所以我无法写出完整的确切命令,但它可能类似于:
30 12 * * * /usr/bin/java -jar /home/username/myTestStuff/test.jar > /user/username/myTestStuff/logfiles/test.log 2>&1