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