Sha256: ff19f8131fa67de7a3f2ffe6563ba375e7be2b18380e22fbe86fa4e1a6ba30aa
Contents?: true
Size: 1.54 KB
Versions: 2
Compression:
Stored size: 1.54 KB
Contents
module Logtail # The Logtail Logger behaves exactly like the standard Ruby `::Logger`, except that it supports a # transparent API for logging structured data and events. # # @example Basic logging # logger.info "Payment rejected for customer #{customer_id}" # # @example Logging an event # logger.info "Payment rejected", payment_rejected: {customer_id: customer_id, amount: 100} class Logger < ::Logger include ::ActiveSupport::LoggerThreadSafeLevel if defined?(::ActiveSupport::LoggerThreadSafeLevel) if defined?(::ActiveSupport::LoggerSilence) include ::ActiveSupport::LoggerSilence elsif defined?(::LoggerSilence) include ::LoggerSilence end def self.create_logger(*io_devices_and_loggers) logger = Logtail::Logger.new(*io_devices_and_loggers) tagged_logging_supported = Rails::VERSION::MAJOR >= 7 || Rails::VERSION::MAJOR == 6 && Rails::VERSION::MINOR >= 1 logger = ::ActiveSupport::TaggedLogging.new(logger) if tagged_logging_supported logger end def self.create_default_logger(source_token) if ENV['LOGTAIL_SKIP_LOGS'].blank? && !Rails.env.test? io_device = Logtail::LogDevices::HTTP.new(source_token) else io_device = STDOUT end logger = self.create_logger(io_device) if defined?(Sidekiq) Sidekiq.configure_server do |config| logger = self.create_logger(io_device, config.logger) if config.logger.class == Sidekiq::Logger config.logger = logger end end logger end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
logtail-rails-0.2.4 | lib/logtail-rails/logger.rb |
logtail-rails-0.2.3 | lib/logtail-rails/logger.rb |