Sha256: 60728e13498ab4f8fcb04696903f95e2b6b78f016017830b85b06a6d25270cda

Contents?: true

Size: 1.53 KB

Versions: 1

Compression:

Stored size: 1.53 KB

Contents

require "singleton"

module Timber
  # Interface for settings and reading Timber configuration.
  #
  # You can override any configuration supplied here by simply setting it:
  #
  #     # Rails
  #     config.timber.api_key = "my api key"
  #
  #     # Everything else
  #     Timber::Config.instance.api_key = "my api key"
  #
  # If a value is not explicity set, the environment is checked for it's associated
  # environment variable. If that is not set, a reasonable default will be chosen. Each
  # method documents this.
  class Config
    class NoLoggerError < StandardError; end

    include Singleton

    attr_writer :debug_logger, :http_body_limit, :logger

    def initialize
      @http_body_limit = 2000
    end


    # Set a debug_logger to view internal Timber library log message.
    # Useful for debugging. Defaults to `nil`. If set, debug messages will be
    # written to this logger.
    def debug_logger
      @debug_logger
    end

    # Truncates captured HTTP bodies to this specified limit. The default is `2000`.
    # If you want to capture more data, you can raise this to a maximum of `5000`,
    # or lower this to be more efficient with data.
    def http_body_limit
      @http_body_limit
    end

    # This is the logger Timber writes to. It should be set to your global
    # logger to keep the logging destination consitent. Please see `delegate_logger_to`
    # to  delegate this call to another method. This is set to `Rails.logger`
    # for rails.
    def logger
      @logger || raise(NoLoggerError.new)
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
timber-2.0.3 lib/timber/config.rb