Class: Ougai::Logger
- Inherits:
-
Logger
- Object
- Logger
- Ougai::Logger
- Includes:
- Logging
- Defined in:
- lib/ougai/logger.rb
Overview
Main Logger
Constant Summary
Constants included from Ougai::Logging::Severity
Ougai::Logging::Severity::SEV_LABEL, Ougai::Logging::Severity::TRACE
Instance Attribute Summary collapse
-
#before_log ⇒ Proc
Hook before logging.
-
#default_message ⇒ String
Use this if log message is not specified (by default this is ‘No message’).
-
#exc_key ⇒ String
The field name of Exception (by default this is :err).
-
#with_fields ⇒ Hash
The fields appending to all logs.
Class Method Summary collapse
-
.broadcast(logger) ⇒ Object
Broadcasts the same logs to the another logger.
- .child_class ⇒ Object
- .child_class=(klass) ⇒ Object
- .inherited(subclass) ⇒ Object
Instance Method Summary collapse
- #chain(severity, args, fields, hooks) ⇒ Object
-
#child(fields = {}) ⇒ ChildLogger
Creates a child logger and returns it.
-
#initialize ⇒ Logger
constructor
A new instance of Logger.
- #level=(severity) ⇒ Object
Methods included from Logging
#_log, #add, #debug, #error, #fatal, #info, #trace, #trace?, #unknown, #warn
Methods included from Ougai::Logging::Severity
Constructor Details
#initialize ⇒ Logger
Returns a new instance of Logger.
15 16 17 18 19 20 21 22 |
# File 'lib/ougai/logger.rb', line 15 def initialize(*, **) super @before_log = nil @default_message = 'No message' @exc_key = :err @with_fields = {} @formatter = create_formatter if @formatter.nil? end |
Instance Attribute Details
#before_log ⇒ Proc
Hook before logging.
9 10 11 |
# File 'lib/ougai/logger.rb', line 9 def before_log @before_log end |
#default_message ⇒ String
Use this if log message is not specified (by default this is ‘No message’).
9 10 11 |
# File 'lib/ougai/logger.rb', line 9 def @default_message end |
#exc_key ⇒ String
The field name of Exception (by default this is :err).
9 10 11 |
# File 'lib/ougai/logger.rb', line 9 def exc_key @exc_key end |
#with_fields ⇒ Hash
The fields appending to all logs.
9 10 11 |
# File 'lib/ougai/logger.rb', line 9 def with_fields @with_fields end |
Class Method Details
.broadcast(logger) ⇒ Object
Broadcasts the same logs to the another logger
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/ougai/logger.rb', line 40 def self.broadcast(logger) Module.new do |mdl| define_method(:_log) do |*args, &block| logger._log(*args, &block) super(*args, &block) end define_method(:level=) do |level| logger.level = level super(level) end define_method(:close) do logger.close super() end end end |
.child_class ⇒ Object
25 26 27 |
# File 'lib/ougai/logger.rb', line 25 def child_class @child_class ||= ChildLogger end |
.child_class=(klass) ⇒ Object
29 30 31 |
# File 'lib/ougai/logger.rb', line 29 def child_class=(klass) @child_class = klass end |
.inherited(subclass) ⇒ Object
33 34 35 |
# File 'lib/ougai/logger.rb', line 33 def inherited(subclass) subclass.child_class = Class.new(ChildLogger) end |
Instance Method Details
#chain(severity, args, fields, hooks) ⇒ Object
87 88 89 90 |
# File 'lib/ougai/logger.rb', line 87 def chain(severity, args, fields, hooks) hooks.push(@before_log) if @before_log write(severity, args, weak_merge!(fields, @with_fields), hooks) end |
#child(fields = {}) ⇒ ChildLogger
Creates a child logger and returns it.
76 77 78 79 80 81 82 83 84 |
# File 'lib/ougai/logger.rb', line 76 def child(fields = {}) ch = self.class.child_class.new(self, fields) if !block_given? ch else yield ch end end |
#level=(severity) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 |
# File 'lib/ougai/logger.rb', line 59 def level=(severity) if severity.is_a?(Integer) @level = severity return end if severity.to_s.downcase == 'trace' @level = TRACE return end super end |