Sha256: ab0203bf26e5a42bf3883e42fcf62f12d807f32cd2efd5dd69e1a9c33fdcfeb0
Contents?: true
Size: 1.7 KB
Versions: 6
Compression:
Stored size: 1.7 KB
Contents
# frozen_string_literal: true require_relative "base" module TTY class Logger module Handlers class Stream include Base attr_reader :output attr_reader :config attr_reader :level def initialize(output: $stderr, formatter: nil, config: nil, level: nil) @output = Array[output].flatten @formatter = coerce_formatter(formatter || config.formatter).new @config = config @level = level || @config.level @mutex = Mutex.new end # @api public def call(event) @mutex.lock data = {} metadata.each do |meta| case meta when :date data["date"] = event.metadata[:time].strftime(config.date_format) when :time data["time"] = event.metadata[:time].strftime(config.time_format) when :file data["path"] = format_filepath(event) when :pid data["pid"] = event.metadata[:pid] else raise "Unknown metadata `#{meta}`" end end data["level"] = event.metadata[:level] data["message"] = event.message.join(' ') unless event.fields.empty? data.merge!(event.fields) end unless event.backtrace.empty? data.merge!("backtrace" => event.backtrace.join(",")) end output.each do |out| out.puts @formatter.dump(data, max_bytes: config.max_bytes, max_depth: config.max_depth) end ensure @mutex.unlock end end # Stream end # Handlers end # Logger end # TTY
Version data entries
6 entries across 6 versions & 1 rubygems