class StdOutErrLogger
Custom logger to direct info to stdout and warn and above to stderr
def add(severity, message = nil, progname = nil, &block)
def add(severity, message = nil, progname = nil, &block) message = (message || block&.call || progname) if message.nil? message = "- #{message.to_json}\n" ### message = message.join("\n") if message.is_a? Array out = format_message(format_severity(severity), Time.now, progname, message) if severity == Logger::UNKNOWN # does not follow spec, outputs to stderr for IO # $stderr.puts(out) super elsif severity >= Logger::WARN if @file super else $stderr.puts(out) end else if @file super else $stdout.puts(out) end end end
def initialize(file = "#{__dir__}/../tmp/hash_delegator_next_link_state.yaml")
def initialize(file = "#{__dir__}/../tmp/hash_delegator_next_link_state.yaml") @file = file super(file || STDOUT) self.formatter = proc do |severity, datetime, progname, msg| "#{msg}\n" end end