如果我的初始化代码中出现错误,我该如何在我的日志中记录?

时间:2018-04-01 19:15:54

标签: ruby-on-rails logging initialization ruby-on-rails-5

我在config / initializers / websocket_client.rb文件中有这段代码

module WebsocketClient
  class Proxy
    WS = WebSocket::Client::Simple.connect 'ws://localhost:8000/proxy'
  end
end

WebsocketClient::Proxy::WS.on :message do |msg|
    # Store this in teh Rails cache so that other workers know what
    # the current job is
    json_data = JSON.parse( msg.data )
    if json_data['type'] == "job"
      worker_id = "4AN8nk7YjFNB19M41bP3rJXwRL9CGzkKmZuAQssdnk8j92qxgvV76XNFXMpypJ92LJXDYjxdSbE5UadhNvdHwM1CDBy4pDD"
      cache_key = StratumWorker.get_cache_key(worker_id)
      Rails.cache.delete(cache_key)
      Rails.cache.fetch(cache_key) do
        []
      end
      Rails.cache.fetch(cache_key).push( json_data )
    end
    ActionCable.server.broadcast 'work', data: msg.data
end

我使用的是Rails 5.1。我注意到的是,如果在此块的某处发生异常,则异常不会记录在我的控制台或我的log / development.log文件中。我需要配置什么才能将上述异常发生在我的日志中?

1 个答案:

答案 0 :(得分:0)

我认为你必须为这份工作创建简单的模型。例如app/models/add_log.rb

class AddLog
  def self.exceptions(message=nil)
    @add_log ||= Logger.new("#{Rails.root}/log/exceptions.log")
    @add_log.exceptions(message) unless message.nil?
  end
end

现在你只需在异常块中调用self方法:

AddLog.exceptions 'message_and_stuff'

如果有异常,请检查/log/exceptions.log文件。