Sha256: 9e6ae8863de4221bac66a8e5fd2973a56213ac5645938b934bf4874419e7cb9e
Contents?: true
Size: 797 Bytes
Versions: 2
Compression:
Stored size: 797 Bytes
Contents
require "benchmark" module GlassOctopus module Middleware class CommonLogger FORMAT = "Processed message. topic=%s, partition=%d, key=%s, runtime=%fms".freeze def initialize(app, logger=nil, log_level=:info) @app = app @logger = logger @log_level = log_level end def call(ctx) log(ctx) { @app.call(ctx) } end private def log(ctx) logger = @logger || ctx.logger runtime = Benchmark.realtime { yield } runtime *= 1000 # Convert to milliseconds logger.send(@log_level) { format_message(ctx, runtime) } end def format_message(ctx, runtime) format(FORMAT, ctx.message.topic, ctx.message.partition, ctx.message.key, runtime) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
glass_octopus-2.1.0 | lib/glass_octopus/middleware/common_logger.rb |
glass_octopus-2.0.0 | lib/glass_octopus/middleware/common_logger.rb |