从Ruby文件中获取Rails记录器

时间:2015-07-30 12:53:39

标签: ruby-on-rails ruby logging

我有一个与我的rails应用程序并行运行的ruby文件,侦听RabbitMQ队列并在收到消息时更新模型中的对象:

require "bunny"
require 'json'
require 'rubygems'
require ::File.expand_path('../../config/environment',  __FILE__)

Rails.logger.info "MQ Host: " + Rails.application.config.mq_host
Rails.logger.info "MQ Username: " + Rails.application.config.mq_username

conn = Bunny.new(automatically_recover: false,
                 hostname: Rails.application.config.mq_host,
                 user: Rails.application.config.mq_username,
                 password: Rails.application.config.mq_password)
conn.start

ch = conn.create_channel
q = ch.queue(Rails.application.config.mq_queue,
             durable: Rails.application.config.mq_durable)

begin
  puts " [*] Waiting for messages. To exit press CTRL+C"
  q.subscribe(block: true, manual_ack: true) do |delivery_info, properties, body|
    # do stuff
end

它是这样运行的:

bundle exec ruby -rubygems bin/recv.rb

它从Rails应用程序读取配置并加载,修改和保存模型就好了。我无法做到的是登录Rails记录器。我的意思是我正在记录的消息不会出现在主应用程序日志中,也不会输出到执行脚本的控制台。

来自:

的输出
puts "Logger path: #{Rails.logger.instance_variable_get(:@logdev).dev.path}"
puts "Rails env: #{ENV['RAILS_ENV']} / #{Rails.env}"

Logger path: .../log/development.log
Rails env:  / development

正如您所料。

有谁能告诉我为什么我没有看到日志消息?

0 个答案:

没有答案