Class: Sqreen::DeferredLogger
- Inherits:
-
Object
- Object
- Sqreen::DeferredLogger
- Defined in:
- lib/sqreen/deferred_logger.rb
Defined Under Namespace
Classes: Entry
Constant Summary collapse
- MAX_ENTRIES =
1000
Instance Method Summary collapse
- #add(severity, msg = nil, &block) ⇒ Object
- #debug(msg = nil, &block) ⇒ Object
- #debug? ⇒ Boolean
- #error(msg = nil, &block) ⇒ Object
- #error? ⇒ Boolean
- #fatal(msg = nil, &block) ⇒ Object
- #fatal? ⇒ Boolean
- #flush_to(logger) ⇒ Object
- #formatter=(value) ⇒ Object
- #info(msg = nil, &block) ⇒ Object
- #info? ⇒ Boolean
-
#initialize ⇒ DeferredLogger
constructor
A new instance of DeferredLogger.
- #unknown(msg = nil, &block) ⇒ Object
- #warn(msg = nil, &block) ⇒ Object
- #warn? ⇒ Boolean
Constructor Details
#initialize ⇒ DeferredLogger
Returns a new instance of DeferredLogger.
16 17 18 19 20 21 |
# File 'lib/sqreen/deferred_logger.rb', line 16 def initialize @buffer = StringIO.new @logger = ::Logger.new(@buffer) @entries = [] @mutex = Mutex.new end |
Instance Method Details
#add(severity, msg = nil, &block) ⇒ Object
67 68 69 70 71 72 73 74 75 76 |
# File 'lib/sqreen/deferred_logger.rb', line 67 def add(severity, msg = nil, &block) @mutex.synchronize do @entries.shift if @entries.count >= MAX_ENTRIES mark = @buffer.pos @logger.add(severity, msg, &block) @buffer.seek(mark) @entries << Entry.new(severity, @buffer.read) @buffer.truncate(0) end end |
#debug(msg = nil, &block) ⇒ Object
43 44 45 |
# File 'lib/sqreen/deferred_logger.rb', line 43 def debug(msg = nil, &block) add(::Logger::DEBUG, msg, &block) end |
#debug? ⇒ Boolean
23 24 25 |
# File 'lib/sqreen/deferred_logger.rb', line 23 def debug? true end |
#error(msg = nil, &block) ⇒ Object
55 56 57 |
# File 'lib/sqreen/deferred_logger.rb', line 55 def error(msg = nil, &block) add(::Logger::ERROR, msg, &block) end |
#error? ⇒ Boolean
35 36 37 |
# File 'lib/sqreen/deferred_logger.rb', line 35 def error? true end |
#fatal(msg = nil, &block) ⇒ Object
59 60 61 |
# File 'lib/sqreen/deferred_logger.rb', line 59 def fatal(msg = nil, &block) add(::Logger::FATAL, msg, &block) end |
#fatal? ⇒ Boolean
39 40 41 |
# File 'lib/sqreen/deferred_logger.rb', line 39 def fatal? true end |
#flush_to(logger) ⇒ Object
82 83 84 85 86 87 88 89 90 |
# File 'lib/sqreen/deferred_logger.rb', line 82 def flush_to(logger) @mutex.synchronize do @entries.each do |entry| next if entry.severity < logger.level logger.instance_eval { @logdev }.write(entry.) end reset end end |
#formatter=(value) ⇒ Object
78 79 80 |
# File 'lib/sqreen/deferred_logger.rb', line 78 def formatter=(value) @logger.formatter = value end |
#info(msg = nil, &block) ⇒ Object
47 48 49 |
# File 'lib/sqreen/deferred_logger.rb', line 47 def info(msg = nil, &block) add(::Logger::INFO, msg, &block) end |
#info? ⇒ Boolean
27 28 29 |
# File 'lib/sqreen/deferred_logger.rb', line 27 def info? true end |
#unknown(msg = nil, &block) ⇒ Object
63 64 65 |
# File 'lib/sqreen/deferred_logger.rb', line 63 def unknown(msg = nil, &block) add(::Logger::UNKNOWN, msg, &block) end |
#warn(msg = nil, &block) ⇒ Object
51 52 53 |
# File 'lib/sqreen/deferred_logger.rb', line 51 def warn(msg = nil, &block) add(::Logger::WARN, msg, &block) end |
#warn? ⇒ Boolean
31 32 33 |
# File 'lib/sqreen/deferred_logger.rb', line 31 def warn? true end |