Sha256: a5cac5f0f2bd3705f784aa0085135623fc34473a526169bf02e0aa961a00c94c
Contents?: true
Size: 1.25 KB
Versions: 1
Compression:
Stored size: 1.25 KB
Contents
# frozen_string_literal: true require 'logger' require 'singleton' require 'svcbase/formatter' # define our own custom logger module Core # our logger class Logger < ::Logger include Singleton def initialize super($stdout) self.formatter = Core::Formatters::Log.new end def none(*_unused) # intentional no-op. Sequel will log things at a defined log level # but we want to be able to log long-running queries without logging # ALL of them. this gives us a method to /dev/zero messages for fast # queries end end # truncate long parameters, mask password class ParamFilter def filter(paramhash, maskkeys) paramhash.each do |key, value| next paramhash[key] = '*' if maskkeys&.include?(key.to_sym) case value when String paramhash[key] = "#{value[1..128]}... (#{value.length})" if value.length > 128 when Hash, Array value = value.to_json.to_s paramhash[key] = "#{value[1..128]}... (#{value.length})" if value.length > 128 end end paramhash end end end # add a logger method to all objects so that we can access our logger anywhere class Object def log Core::Logger.instance end alias logger log end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
svcbase-0.1.17 | lib/svcbase/corelogger.rb |