Class: TSLogger
- Inherits:
-
Logger
- Object
- Logger
- TSLogger
- 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
-
#format_message(severity, datetime, progname, msg) ⇒ Object
ActiveSupport brutally hacks the root Logger#format_message to completely ignore formatting.
-
#initialize(logdev = nil, shift_age = 0, shift_size = 1048576) ⇒ TSLogger
constructor
Use a StringIO in-memory logger if logdev == TentSteak::MEM_LOG, or if logdev == nil and the TentSteak :debug feature is active.
-
#mem_log ⇒ Object
Return full in-memory log content so far, if any.
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 (severity, datetime, progname, msg) (@formatter || @default_formatter).call(severity, datetime, progname, msg) end |
#mem_log ⇒ Object
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 |