Class: Yell::Logger
- Inherits:
-
Object
- Object
- Yell::Logger
- Includes:
- Yell::Level::Helpers
- 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
-
#adapter(type = :file, *args, &block) ⇒ Yell::Adapter
Define an adapter to be used for logging.
-
#close ⇒ Object
Convenience method for resetting all adapters of the Logger.
-
#initialize(*args, &block) ⇒ Logger
constructor
Initialize a new Logger.
-
#level(val = nil) ⇒ Object
Deprecated: Use attr_reader in future.
Constructor Details
#initialize(*args, &block) ⇒ Logger
Initialize a new Logger
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/yell/logger.rb', line 37 def initialize( *args, &block ) @adapters = [] # extract options @options = args.last.is_a?(Hash) ? args.pop : {} # adapters may be passed in the options _extract_adapters!( @options ) # check if filename was given as argument and put it into the @options if args.last.is_a?( String ) @options[:filename] = args.pop unless @options[:filename] end # set the log level when given self.level = @options[:level] # set the loggeer's name self.name = @options[:name] if @options[:name] # extract adapter self.adapter args.pop if args.any? # eval the given block _call( &block ) if block # default adapter when none defined self.adapter :file if @adapters.empty? end |
Instance Attribute Details
#name ⇒ Object
The name of the logger instance
13 14 15 |
# File 'lib/yell/logger.rb', line 13 def name @name end |
Instance Method Details
#adapter(type = :file, *args, &block) ⇒ Yell::Adapter
Define an adapter to be used for logging.
89 90 91 92 93 94 95 |
# File 'lib/yell/logger.rb', line 89 def adapter( type = :file, *args, &block ) = [@options, *args].inject( Hash.new ) do |h, c| h.merge( c.is_a?(String) ? {:filename => c} : c ) end @adapters << Yell::Adapters.new( type, , &block ) end |
#close ⇒ Object
Convenience method for resetting all adapters of the Logger.
119 120 121 |
# File 'lib/yell/logger.rb', line 119 def close @adapters.each(&:close) end |
#level(val = nil) ⇒ Object
Deprecated: Use attr_reader in future
102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/yell/logger.rb', line 102 def level( val = nil ) if val.nil? @level else # deprecated, but should still work Yell._deprecate( "0.5.0", "Use :level= for setting the log level", :before => "Yell::Logger.new { level :info }", :after => "Yell::Logger.new { |l| l.level = :info }" ) @level = Yell::Level.new( val ) end end |