1

我有一个工人将工作委托给另一个班级,如下所示:

class SynJob
  include Sidekiq::Worker
  sidekiq_options queue: :sync

  def perform(user_id)
    OtherClass.new(blah, blah, blah)
  end
end

class OtherClass
  def initialize
    puts "we are in OtherClass"
  end
end

我的问题是,如何从 OtherClass 登录到标准输出。

我的 puts 语句没有出现在 heroku 标准输出日志中。

4

1 回答 1

0

您的问题的字面答案是使用puts或其他 Ruby API 来写入标准输出。您可以在您的SynJob或您的OtherClass代码中调用它,它将执行相同的操作,写入 sidekiq 工作进程的标准输出。

但是,这可能不是您想要做的。如果这是一个 Rails 应用程序,您可能想要写入 Rails 记录器,它应该在您的工作人员和其他代码中都可用:

Rails.logger.info "I'm a debug message"

这将在本地以及在 Heroku 上运行时显示在适当的日志中。

于 2013-09-10T16:47:30.083 回答