Sha256: ea6cd1e1b7c15e161e24231f58d5b9986ae2cd6d4b0e4f7ccda71da960da53dc

Contents?: true

Size: 1020 Bytes

Versions: 15

Compression:

Stored size: 1020 Bytes

Contents

require 'logger'
require 'sitehub/constants'
require_relative 'log_wrapper'
require_relative 'log_stash'
class SiteHub
  module Middleware
    module Logging
      class ErrorLogger
        include Constants
        LOG_TEMPLATE = '[%s] ERROR: %s - %s'.freeze

        attr_reader :logger

        def initialize(app, logger = Logger.new(STDERR))
          @app = app
          @logger = LogWrapper.new(logger)
        end

        def call(env)
          errors = env[ERRORS] ||= LogStash.new
          @app.call(env).tap do
            unless errors.empty?
              messages = errors.collect do |log_entry|
                log_message(error: log_entry.message, transaction_id: env[RackHttpHeaderKeys::TRANSACTION_ID])
              end

              logger.write(messages.join(NEW_LINE))
            end
          end
        end

        def log_message(error:, transaction_id:)
          format(LOG_TEMPLATE, Time.now.strftime(TIME_STAMP_FORMAT), transaction_id, error)
        end
      end
    end
  end
end

Version data entries

15 entries across 15 versions & 1 rubygems

Version Path
sitehub-0.5.0.alpha12 lib/sitehub/middleware/logging/error_logger.rb
sitehub-0.4.10 lib/sitehub/middleware/logging/error_logger.rb
sitehub-0.5.0.alpha11 lib/sitehub/middleware/logging/error_logger.rb
sitehub-0.5.0.alpha10 lib/sitehub/middleware/logging/error_logger.rb
sitehub-0.5.0.alpha8 lib/sitehub/middleware/logging/error_logger.rb
sitehub-0.5.0.alpha7 lib/sitehub/middleware/logging/error_logger.rb
sitehub-0.5.0.alpha6 lib/sitehub/middleware/logging/error_logger.rb
sitehub-0.5.0.alpha5 lib/sitehub/middleware/logging/error_logger.rb
sitehub-0.5.0.alpha4 lib/sitehub/middleware/logging/error_logger.rb
sitehub-0.5.0.alpha3 lib/sitehub/middleware/logging/error_logger.rb
sitehub-0.5.0.alpha2 lib/sitehub/middleware/logging/error_logger.rb
sitehub-0.4.9 lib/sitehub/middleware/logging/error_logger.rb
sitehub-0.4.8 lib/sitehub/middleware/logging/error_logger.rb
sitehub-0.4.7 lib/sitehub/middleware/logging/error_logger.rb
sitehub-0.4.6 lib/sitehub/middleware/logging/error_logger.rb