Class: Lorekeeper::FastLogger
- Inherits:
-
Object
- Object
- Lorekeeper::FastLogger
- Includes:
- Logger::Severity
- Defined in:
- lib/lorekeeper/fast_logger.rb
Overview
Very simple, very fast logger
Direct Known Subclasses
Defined Under Namespace
Classes: LogDevice, LogDeviceMutex
Constant Summary collapse
- LOGGING_METHODS =
[ :debug, :info, :warn, :error, :fatal ].freeze
- METHOD_SEVERITY_MAP =
{ debug: DEBUG, info: INFO, warn: WARN, error: ERROR, fatal: FATAL }.freeze
- SEVERITY_NAMES_MAP =
{ DEBUG => 'debug', INFO => 'info', WARN => 'warning', ERROR => 'error', FATAL => 'fatal' }.freeze
Instance Attribute Summary collapse
-
#formatter ⇒ Object
Just for compatibility with Logger, not used.
-
#level ⇒ Object
Current level, default: DEBUG.
Instance Method Summary collapse
-
#add(severity, message_param = nil, progname = nil, &block) ⇒ Object
This is part of the standard Logger API, we need this to be compatible.
- #debug? ⇒ Boolean
- #error? ⇒ Boolean
- #fatal? ⇒ Boolean
- #info? ⇒ Boolean
-
#initialize(file) ⇒ FastLogger
constructor
A new instance of FastLogger.
-
#log_data(_severity, message) ⇒ Object
inherited classes probably want to reimplement this.
-
#silence(&block) ⇒ Object
activerecord-session_store v2 is now simply calling silence instead of silence_logger.
-
#silence_logger(&block) ⇒ Object
Some gems like to add this method.
- #warn? ⇒ Boolean
Constructor Details
#initialize(file) ⇒ FastLogger
Returns a new instance of FastLogger.
18 19 20 21 22 |
# File 'lib/lorekeeper/fast_logger.rb', line 18 def initialize(file) @level = DEBUG @iodevice = LogDevice.new(file) @file = file # We only keep this so we can inspect where we are sending the logs end |
Instance Attribute Details
#formatter ⇒ Object
Just for compatibility with Logger, not used
10 11 12 |
# File 'lib/lorekeeper/fast_logger.rb', line 10 def formatter @formatter end |
#level ⇒ Object
Current level, default: DEBUG
9 10 11 |
# File 'lib/lorekeeper/fast_logger.rb', line 9 def level @level end |
Instance Method Details
#add(severity, message_param = nil, progname = nil, &block) ⇒ Object
This is part of the standard Logger API, we need this to be compatible
57 58 59 60 61 |
# File 'lib/lorekeeper/fast_logger.rb', line 57 def add(severity, = nil, progname = nil, &block) return true if severity < @level = || (block && block.call) || progname log_data(severity, .freeze) end |
#debug? ⇒ Boolean
12 |
# File 'lib/lorekeeper/fast_logger.rb', line 12 def debug?; level <= DEBUG; end |
#error? ⇒ Boolean
15 |
# File 'lib/lorekeeper/fast_logger.rb', line 15 def error?; level <= ERROR; end |
#fatal? ⇒ Boolean
16 |
# File 'lib/lorekeeper/fast_logger.rb', line 16 def fatal?; level <= FATAL; end |
#info? ⇒ Boolean
13 |
# File 'lib/lorekeeper/fast_logger.rb', line 13 def info?; level <= INFO; end |
#log_data(_severity, message) ⇒ Object
inherited classes probably want to reimplement this
77 78 79 |
# File 'lib/lorekeeper/fast_logger.rb', line 77 def log_data(_severity, ) @iodevice.write() end |
#silence(&block) ⇒ Object
activerecord-session_store v2 is now simply calling silence instead of silence_logger
72 73 74 |
# File 'lib/lorekeeper/fast_logger.rb', line 72 def silence(&block) yield if block_given? end |
#silence_logger(&block) ⇒ Object
Some gems like to add this method. For instance: github.com/rails/activerecord-session_store To avoid needing to monkey-patch Lorekeeper just to get this method, we are adding a simple non-functional version here.
67 68 69 |
# File 'lib/lorekeeper/fast_logger.rb', line 67 def silence_logger(&block) yield if block_given? end |
#warn? ⇒ Boolean
14 |
# File 'lib/lorekeeper/fast_logger.rb', line 14 def warn?; level <= WARN; end |