Sha256: a3422bd6f494244a784306dfe9bb5419f2b114c58895aacc152671087c513f71

Contents?: true

Size: 777 Bytes

Versions: 2

Compression:

Stored size: 777 Bytes

Contents

module Magpie
  class Mothlog

    FORMAT = %{%s : "%s" \n}
    FORMAT_NOTIFY =  %{\t[%s] %s at[%s] (%0.4fms)\nParameters:%s\nResult:%s\n}

    def initialize(app, logger=nil)
      @app = app
      @logger = logger
    end

    def call(env)
      status, header, body = @app.call(env)
      log(env)
      [status, header, body]
    end

    private
    def log(env)
      logger = @logger || env['rack.errors']
      errors_info = env["magpie.errors.info"] || { }
      logger.write("\n\n")
      unless errors_info.empty?
        logger.write("ErrorInfo:\n")
        errors_info.each { |k, v| logger.write FORMAT % [k, v]}
      end
      if errors_info.empty? and env["magpie.notify"]
        logger.write FORMAT_NOTIFY % env["magpie.notify"]
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
magpie-0.8.6.2 lib/middles/mothlog.rb
magpie-0.8.6.1 lib/middles/mothlog.rb