Sha256: ec5e7b7c32aea33e8d9304be1ad2dee7a38457a8a879b0f0963641d2161f4580

Contents?: true

Size: 960 Bytes

Versions: 8

Compression:

Stored size: 960 Bytes

Contents

# We are explicitely choosing to allow clients to use or not use informed at their discretion
# rubocop:disable Lint/HandleExceptions
begin
  require "informed"
rescue LoadError
end
# rubocop:enable Lint/HandleExceptions

module Nylas
  # Exposes a shared logger for debugging purposes
  module Logging
    def self.included(object)
      if const_defined? :Informed
        object.include Informed
        Informed.logger = logger
      else
        object.extend NoOpInformOn
      end
    end

    def self.logger
      return @logger if @logger
      @logger = Logger.new(STDOUT)
      @logger.level = level
      @logger
    end

    def self.level
      Logger.const_get(ENV["NYLAS_LOG_LEVEL"] || :WARN)
    end

    def self.logger=(logger)
      @logger = logger
    end

    # No op for inform_on if user does not have the informed gem installed.
    module NoOpInformOn
      def inform_on(method, level: :debug, also_log: {}); end
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
nylas-4.2.4 lib/nylas/logging.rb
nylas-4.2.3 lib/nylas/logging.rb
nylas-4.2.2 lib/nylas/logging.rb
nylas-4.2.1 lib/nylas/logging.rb
nylas-4.0.1 lib/nylas/logging.rb
nylas-4.2.0 lib/nylas/logging.rb
nylas-4.0.0.rc3 lib/nylas/logging.rb
nylas-4.0.0.rc2 lib/nylas/logging.rb