Je kunt niet meer dan 25 onderwerpen selecteren Onderwerpen moeten beginnen met een letter of nummer, kunnen streepjes bevatten ('-') en kunnen maximaal 35 tekens lang zijn.

39 regels
848 B

7 jaren geleden
module CryptCheck
class Logger
6 jaren geleden
LEVELS = %i(trace debug info warning error fatal none)
7 jaren geleden
def self.level=(level)
@@level = level.to_sym
7 jaren geleden
end
self.level = ENV.fetch 'LOG', :info
7 jaren geleden
def self.log(level, string=nil, output: $stdout, &block)
return unless enabled? level
output.puts(string ? string : block.call)
end
6 jaren geleden
if Object.respond_to? :ai
def self.ap(name, object)
self.debug { "#{name} : #{object.ai}" }
end
else
def self.ap(name, object)
self.debug { "#{name} : #{object}" }
end
end
7 jaren geleden
LEVELS.each do |level|
class_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1
def self.#{level}(string=nil, output: $stdout, &block)
self.log :#{level}, string, output: output, &block
end
RUBY_EVAL
end
private
def self.enabled?(level)
LEVELS.index(level) >= LEVELS.index(@@level)
end
end
end