Class: Yell::Logger
- Inherits:
-
Object
- Object
- Yell::Logger
- Includes:
- Helpers::Adapter, Helpers::Base, Helpers::Formatter, Helpers::Level, Helpers::Silencer, Helpers::Tracer
- Defined in:
- lib/yell/logger.rb
Overview
The Yell::Logger
is your entrypoint. Anything onwards is derived from here.
A Yell::Logger
instance holds all your adapters and sends the log events to them if applicable. There are multiple ways of how to create a new logger.
Instance Attribute Summary collapse
-
#name ⇒ Object
The name of the logger instance.
Instance Method Summary collapse
- #close ⇒ Object
-
#initialize(*args, &block) ⇒ Logger
constructor
Initialize a new Logger.
-
#inspect ⇒ Object
Get a pretty string representation of the logger.
Methods included from Helpers::Silencer
Methods included from Helpers::Tracer
Methods included from Helpers::Adapter
Methods included from Helpers::Formatter
Methods included from Helpers::Level
Constructor Details
#initialize(*args, &block) ⇒ Logger
Initialize a new Logger
70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/yell/logger.rb', line 70 def initialize( *args, &block ) reset! # extract options @options = args.last.is_a?(Hash) ? args.pop : {} # adapters may be passed in the options extract!(*@options[:adapters]) if @options.key?(:adapters) # check if filename was given as argument and put it into the @options if [String, Pathname].include?(args.last.class) @options[:filename] = args.pop unless @options[:filename] end self.level = @options.fetch(:level, 0) # debug by default self.name = @options.fetch(:name, nil) # no name by default self.trace = @options.fetch(:trace, :error) # trace from :error level onwards # silencer self.silence(*@options[:silence]) # extract adapter self.adapter(args.pop) if args.any? # eval the given block block.arity > 0 ? block.call(self) : instance_eval(&block) if block_given? # default adapter when none defined self.adapter(:file) if _adapter.nil? end |
Instance Attribute Details
#name ⇒ Object
The name of the logger instance
46 47 48 |
# File 'lib/yell/logger.rb', line 46 def name @name end |
Instance Method Details
#close ⇒ Object
145 146 147 |
# File 'lib/yell/logger.rb', line 145 def close _adapter.close end |
#inspect ⇒ Object
Get a pretty string representation of the logger.
139 140 141 142 |
# File 'lib/yell/logger.rb', line 139 def inspect inspection = inspectables.map { |m| "#{m}: #{send(m).inspect}" } "#<#{self.class.name} #{inspection * ', '}>" end |