def logger(name, options = {}, &block)
      use_adapter = options.key?(:adapter) ? get_adapter(options.delete(:adapter)) : self.adapter
      use_adapter.logger(name, options).tap do |logger|
        yield(logger) if block_given?
      end
    end
def logger(name, options = {}, &block)
      use_adapter = options.key?(:adapter) ? get_adapter(options.delete(:adapter)) : self.adapter
      use_adapter.logger(name, options).tap do |logger|
        yield(logger) if block_given?
      end
    end
Get a new logger instance for supplied named logger or class name.

 All adapters must ensure that they provide the same API for creating
 new loggers. Each logger has a name, further possible options are:

 - `:to`, filename or IO, where to write the output to
 - `:level`, Fixnum, starting log level, @see `Loggr::Severity`
 - `:marker`, String, name of the category/marker

 If an adapter does not support setting a specific option, just
 ignore it.