Class: TSLogger

Inherits:
Logger
  • Object
show all
Defined in:
lib/tent_steak.rb

Overview

Custom Logger to restore normal formatting after ActiveRecord trampling and to add easy support for in-memory StringIO logger.

Instance Method Summary collapse

Constructor Details

#initialize(logdev = nil, shift_age = 0, shift_size = 1048576) ⇒ TSLogger

Use a StringIO in-memory logger if logdev == TentSteak::MEM_LOG, or if logdev == nil and the TentSteak :debug feature is active.



42
43
44
45
46
47
48
49
50
# File 'lib/tent_steak.rb', line 42

def initialize(logdev = nil, shift_age = 0, shift_size = 1048576)
  # Use mem_log if explicitly requested, or fall back on it if :debug feature.
  if (logdev == TentSteak::MEM_LOG) || (logdev.nil? && TentSteak.debug?)
    logdev = (@mem_log = StringIO.new) 
  end

  super logdev
  @formatter = TSFormatter.new
end

Instance Method Details

#format_message(severity, datetime, progname, msg) ⇒ Object

ActiveSupport brutally hacks the root Logger#format_message to completely ignore formatting. Uhhhhkay. Needed that. Put it back here.



54
55
56
# File 'lib/tent_steak.rb', line 54

def format_message(severity, datetime, progname, msg)
  (@formatter || @default_formatter).call(severity, datetime, progname, msg)
end

#mem_logObject

Return full in-memory log content so far, if any.



59
60
61
# File 'lib/tent_steak.rb', line 59

def mem_log
  @mem_log && @mem_log.string
end