Skip to content

Commit 57fbe27

Browse files
committed
Initial Resque::Logger module
This module can be selectively included in classes which wish to take advantage of the centralized logging facilities, enabling a set of 5 methods for each severity level (debug, info, warn, error, fatal)
1 parent 6ba98a0 commit 57fbe27

File tree

3 files changed

+34
-0
lines changed

3 files changed

+34
-0
lines changed

lib/resque.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
require 'resque/helpers'
1212
require 'resque/stat'
13+
require 'resque/logger'
1314
require 'resque/job'
1415
require 'resque/worker'
1516
require 'resque/plugin'

lib/resque/logger.rb

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
module Resque
2+
# Include this module in classes you wish to have logging facilities
3+
module Logger
4+
module_function
5+
6+
# Log level aliases
7+
def debug(message); __log__ :debug, message; end
8+
def info(message); __log__ :info, message; end
9+
def warn(message); __log__ :warn, message; end
10+
def error(message); __log__ :error, message; end
11+
def fatal(message); __log__ :fatal, message; end
12+
13+
# Low-level thunk to the logger's own log method
14+
def __log__(severity, message)
15+
Resque.logger.__send__(severity, message) if Resque.logger
16+
end
17+
end
18+
end

test/logger_test.rb

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,24 @@
11
require 'test_helper'
2+
require 'minitest/mock'
23

34
context "Resque.logger" do
45
test "sets and receives the active logger" do
56
my_logger = Object.new
67
Resque.logger = my_logger
78
assert_equal my_logger, Resque.logger
89
end
10+
end
11+
12+
context "Resque::Logger" do
13+
%w(debug info error fatal).each do |severity|
14+
test "logs #{severity} messages" do
15+
message = "test message"
16+
mock_logger = MiniTest::Mock.new
17+
mock_logger.expect severity.to_sym, nil, [message]
18+
Resque.logger = mock_logger
19+
20+
Resque::Logger.send severity, message
21+
mock_logger.verify
22+
end
23+
end
924
end

0 commit comments

Comments
 (0)