Skip to content

Commit 1826a05

Browse files
committed
Support the old verbose/very_verbose logging
implement this as Logger formatters on top of stdlib's Logger. You must specify the Logger first before setting verbose/very_verbose
1 parent d3ae69f commit 1826a05

File tree

6 files changed

+124
-10
lines changed

6 files changed

+124
-10
lines changed

lib/resque.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,9 @@
1111
require 'resque/helpers'
1212
require 'resque/stat'
1313
require 'resque/logging'
14+
require 'resque/log_formatters/quiet_formatter'
15+
require 'resque/log_formatters/verbose_formatter'
16+
require 'resque/log_formatters/very_verbose_formatter'
1417
require 'resque/job'
1518
require 'resque/worker'
1619
require 'resque/plugin'
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module Resque
2+
class QuietFormatter
3+
def call(serverity, datetime, progname, msg)
4+
""
5+
end
6+
end
7+
end
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
module Resque
2+
class VerboseFormatter
3+
def call(serverity, datetime, progname, msg)
4+
"*** #{msg}"
5+
end
6+
end
7+
end
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
module Resque
2+
class VeryVerboseFormatter
3+
def call(serverity, datetime, progname, msg)
4+
time = Time.now.strftime('%H:%M:%S %Y-%m-%d')
5+
"** [#{time}] #$$: #{msg}"
6+
end
7+
end
8+
end

lib/resque/worker.rb

Lines changed: 35 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -610,11 +610,41 @@ def procline(string)
610610
#
611611
# Resque.logger.level = Logger::DEBUG
612612
#
613-
def verbose; logger_severity_deprecation_warning; end
614-
def very_verbose; logger_severity_deprecation_warning; end
615-
def verbose=(_); logger_severity_deprecation_warning; end
616-
def very_verbose=(_); logger_severity_deprecation_warning; end
617-
613+
def verbose
614+
logger_severity_deprecation_warning
615+
@verbose
616+
end
617+
618+
def very_verbose
619+
logger_severity_deprecation_warning
620+
@very_verbose
621+
end
622+
623+
def verbose=(value);
624+
logger_severity_deprecation_warning
625+
626+
if value && !very_verbose
627+
Resque.logger.formatter = VerboseFormatter.new
628+
elsif !value
629+
Resque.logger.formatter = QuietFormatter.new
630+
end
631+
632+
@verbose = value
633+
end
634+
635+
def very_verbose=(value)
636+
logger_severity_deprecation_warning
637+
if value
638+
Resque.logger.formatter = VeryVerboseFormatter.new
639+
elsif !value && verbose
640+
Resque.logger.formatter = VerboseFormatter.new
641+
else
642+
Resque.logger.formatter = QuietFormatter.new
643+
end
644+
645+
@very_verbose = value
646+
end
647+
618648
def logger_severity_deprecation_warning
619649
return if $warned_logger_severity_deprecation
620650
puts "*** DEPRECATION WARNING: Resque::Worker#verbose and #very_verbose are deprecated. Please set Resque.logger.level instead"

test/worker_test.rb

Lines changed: 64 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -399,22 +399,81 @@ def self.perform
399399
assert !$BEFORE_FORK_CALLED, "before_fork should not have been called after job runs"
400400
end
401401

402+
test "setting verbose to true" do
403+
@worker.verbose = true
404+
405+
assert @worker.verbose
406+
assert !@worker.very_verbose
407+
end
408+
409+
test "setting verbose to false" do
410+
@worker.verbose = false
411+
412+
assert !@worker.verbose
413+
assert !@worker.very_verbose
414+
end
415+
416+
test "setting very_verbose to true" do
417+
@worker.very_verbose = true
418+
419+
assert !@worker.verbose
420+
assert @worker.very_verbose
421+
end
422+
423+
test "setting setting verbose to true and then very_verbose to false" do
424+
@worker.very_verbose = true
425+
@worker.verbose = true
426+
@worker.very_verbose = false
427+
428+
assert @worker.verbose
429+
assert !@worker.very_verbose
430+
end
431+
432+
test "verbose prints out logs" do
433+
messages = StringIO.new
434+
Resque.logger = Logger.new(messages)
435+
@worker.verbose = true
436+
437+
begin
438+
@worker.log("omghi mom")
439+
ensure
440+
reset_logger
441+
end
442+
443+
assert_equal "*** omghi mom", messages.string
444+
end
445+
446+
test "unsetting verbose works" do
447+
messages = StringIO.new
448+
Resque.logger = Logger.new(messages)
449+
@worker.verbose = true
450+
@worker.verbose = false
451+
452+
begin
453+
@worker.log("omghi mom")
454+
ensure
455+
reset_logger
456+
end
457+
458+
assert_equal "", messages.string
459+
end
460+
402461
test "very verbose works in the afternoon" do
462+
messages = StringIO.new
463+
Resque.logger = Logger.new(messages)
464+
403465
begin
404466
require 'time'
405467
last_puts = ""
406468
Time.fake_time = Time.parse("15:44:33 2011-03-02")
407469

408-
@worker.extend(Module.new {
409-
define_method(:puts) { |thing| last_puts = thing }
410-
})
411-
412470
@worker.very_verbose = true
413471
@worker.log("some log text")
414472

415-
assert_match /\*\* \[15:44:33 2011-03-02\] \d+: some log text/, last_puts
473+
assert_match /\*\* \[15:44:33 2011-03-02\] \d+: some log text/, messages.string
416474
ensure
417475
Time.fake_time = nil
476+
reset_logger
418477
end
419478
end
420479

0 commit comments

Comments
 (0)