module TezosClient::Logger

Constants

FILTERED_KEYS

Public Instance Methods

create_logger(param) click to toggle source

Create a log that respond to << like a logger param can be 'stdout', 'stderr', a string (then we will log to that file) or a logger (then we return it)

# File lib/tezos_client/logger.rb, line 72
def create_logger(param)
  return unless param

  if param.is_a? String
    if param == "stdout"
      StdOutLogger.new
    elsif param == "stderr"
      StdErrLogger.new
    else
      FileLogger.new(param)
    end
  else
    param
  end
end
env_logger() click to toggle source
# File lib/tezos_client/logger.rb, line 88
def env_logger
  if @@env_logger
    @@env_logger
  elsif ENV["TEZOSCLIENT_LOG"]
    @@env_logger = create_logger ENV["TEZOSCLIENT_LOG"]
  end
end
log(out) click to toggle source
# File lib/tezos_client/logger.rb, line 11
def log(out)
  return unless self.class.logger
  self.class.logger << out + "\n"
end
logger() click to toggle source
# File lib/tezos_client/logger.rb, line 96
def logger
  @@logger || env_logger
end
logger=(log) click to toggle source

Setup the log for TezosClient calls. Value should be a logger but can can be stdout, stderr, or a filename. You can also configure logging by the environment variable TEZOSCLIENT_LOG.

# File lib/tezos_client/logger.rb, line 42
def logger=(log)
  @@logger = create_logger log
end
tezos_contents_log(content) click to toggle source
# File lib/tezos_client/logger.rb, line 34
def tezos_contents_log(content)
  tezos_contents_log_filter(content).pretty_inspect
end
tezos_contents_log_filter(content) click to toggle source
# File lib/tezos_client/logger.rb, line 17
def tezos_contents_log_filter(content)
  if content.is_a? Array
    content.map { |el| tezos_contents_log_filter(el) }
  elsif content.is_a? Hash
    content.reduce({}) do |h, (k, v)|
      value = if FILTERED_KEYS.include? k.to_sym
        "#{v.to_s[0..30]}..."
      else
        tezos_contents_log_filter(v)
      end
      h.merge(k => value)
    end
  else
    content
  end
end