diff options
author | David Heinemeier Hansson <david@basecamp.com> | 2014-05-20 16:10:15 +0200 |
---|---|---|
committer | David Heinemeier Hansson <david@basecamp.com> | 2014-05-20 16:10:15 +0200 |
commit | a8cfb3d042239d968ce0f45e983783f3042ef883 (patch) | |
tree | 7563d2f45d411c27f620f7b1badfb8fd393834bc | |
parent | 2d19c711d041dd955d3fcaf952d101df9241a65e (diff) | |
parent | a2650112d9971460b257dbe6d440e1641226a11e (diff) | |
download | rails-a8cfb3d042239d968ce0f45e983783f3042ef883.tar.gz rails-a8cfb3d042239d968ce0f45e983783f3042ef883.tar.bz2 rails-a8cfb3d042239d968ce0f45e983783f3042ef883.zip |
Merge pull request #46 from cristianbica/logging
Added logging capabilities
-rw-r--r-- | lib/active_job/base.rb | 4 | ||||
-rw-r--r-- | lib/active_job/enqueuing.rb | 1 | ||||
-rw-r--r-- | lib/active_job/log_subscriber.rb | 18 | ||||
-rw-r--r-- | lib/active_job/logging.rb | 7 |
4 files changed, 29 insertions, 1 deletions
diff --git a/lib/active_job/base.rb b/lib/active_job/base.rb index 77b929d4af..3d16f38275 100644 --- a/lib/active_job/base.rb +++ b/lib/active_job/base.rb @@ -1,11 +1,13 @@ require 'active_job/queue_adapter' require 'active_job/queue_name' require 'active_job/enqueuing' +require 'active_job/logging' module ActiveJob class Base extend QueueAdapter extend QueueName extend Enqueuing + extend Logging end -end
\ No newline at end of file +end diff --git a/lib/active_job/enqueuing.rb b/lib/active_job/enqueuing.rb index 324385216e..46f703481a 100644 --- a/lib/active_job/enqueuing.rb +++ b/lib/active_job/enqueuing.rb @@ -11,6 +11,7 @@ module ActiveJob # The return value is adapter-specific and may change in a future # ActiveJob release. def enqueue(*args) + ActiveSupport::Notifications.instrument "enqueue.active_job", adapter: queue_adapter, job: self, params: args queue_adapter.queue self, *Parameters.serialize(args) end end diff --git a/lib/active_job/log_subscriber.rb b/lib/active_job/log_subscriber.rb new file mode 100644 index 0000000000..31c61a6068 --- /dev/null +++ b/lib/active_job/log_subscriber.rb @@ -0,0 +1,18 @@ +module ActiveJob + class LogSubscriber < ActiveSupport::LogSubscriber + def enqueue(event) + payload = event.payload + params = payload[:params] + adapter = payload[:adapter] + job = payload[:job] + + info "ActiveJob enqueued to #{adapter.name.demodulize} job #{job.name}: #{params.inspect}" + end + + def logger + ActiveJob::Base.logger + end + end +end + +ActiveJob::LogSubscriber.attach_to :active_job diff --git a/lib/active_job/logging.rb b/lib/active_job/logging.rb new file mode 100644 index 0000000000..0e994a8f54 --- /dev/null +++ b/lib/active_job/logging.rb @@ -0,0 +1,7 @@ +require 'active_job/log_subscriber' + +module ActiveJob + module Logging + mattr_accessor(:logger) { ActiveSupport::Logger.new(STDOUT) } + end +end |