我正在使用Rails 5的每个gem。我正在尝试解决问题,在config / schedule.rb创建了我的默认schedule.rb文件之后,我添加了一些日志记录指令
# Learn more: http://github.com/javan/whenever
set :environment, "development"
every 10.minutes do
rake "events:calc_index", :output => {:error => 'error.log', :standard => 'cron.log'}
end
我重新启动了我的Rails服务器(不确定是否重要)但我没有看到这些日志文件在任何地方创建。我已经验证了我的crontab是通过运行“crontab -e”并查看作业
来设置的0,10,20,30,40,50 * * * * /bin/bash -l -c 'cd /Users/davea/Documents/workspace/newproj && RAILS_ENV=development bundle exec rake events:calc_index '
创建日志文件在哪里?
答案 0 :(得分:0)
在schedule.rb文件中,您可以通过设置'输出'在全局或命令级别为命令指定重定向选项。变量。这个例子是全球性的:
# adds ">> /path/to/file.log 2>&1" to all commands
set :output, '/path/to/file.log'
并且您应该将此全局级别设置:输出高于您的工作定义,否则它将无法工作 例如:
# This works
set :output, {:error => '~/Desktop/z.error.log', :standard => '~/Desktop/z.standard.log'}
every 1.minute do
command "python ~/Desktop/whe/config/z.py"
end
取自:https://github.com/javan/whenever/wiki/Output-redirection-aka-logging-your-cron-jobs
答案 1 :(得分:0)
根据每当文档 https://github.com/javan/whenever/wiki/Output-redirection-aka-logging-your-cron-jobs
你可以用 Rails 定义这样的输出:
set :output, "#{path}/log/cron.log"
因此,对于您的示例,您可以这样做:
every 10.minutes do
rake "events:calc_index", output: {error: "#{path}/log/error.log", standard: "#{path}/log/cron.log"}
end