我在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文件中。我需要配置什么才能将上述异常发生在我的日志中?
答案 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
文件。