module Telemetry::Logger::Builder

Public Instance Methods

format(include_pid: false, **) click to toggle source
# File lib/telemetry/logger/builder.rb, line 10
def format(include_pid: false, **)
  log.formatter = proc do |severity, datetime, _progname, msg|
    string = "[#{datetime}]"
    string.concat("[#{::Process.pid}]") if include_pid
    string.concat(" #{severity} #{msg}\n")
    string
  end
end
level() click to toggle source
# File lib/telemetry/logger/builder.rb, line 33
def level
  log.level
end
log() click to toggle source
# File lib/telemetry/logger/builder.rb, line 19
def log
  @log ||= output(**opts)
end
log_level=(level) click to toggle source
# File lib/telemetry/logger/builder.rb, line 37
def log_level=(level)
  log.level = case level
              when 'trace', 'debug'
                ::Logger::DEBUG
              when 'info'
                ::Logger::INFO
              when 'warn'
                ::Logger::WARN
              when 'error'
                ::Logger::ERROR
              when 'fatal'
                ::Logger::FATAL
              when nil
                42
              else
                if level.is_a? Integer
                  level
                else
                  0
                end
              end
  @log = log
end
opts() click to toggle source
# File lib/telemetry/logger/builder.rb, line 6
def opts
  @opts ||= {}
end
output(**options) click to toggle source
# File lib/telemetry/logger/builder.rb, line 23
def output(**options)
  return @log unless @log.nil?

  @log = ::Logger.new(options[:log_file] || $stdout)
  self.log_level = options[:level] if options.key? :level
  self.format

  @log
end