|
1234567891011121314151617181920212223242526272829303132333435363738 |
- module CryptCheck
- class Logger
- LEVELS = %i(trace debug info warning error fatal none)
-
- def self.level=(level)
- @@level = level.to_sym
- end
- self.level = ENV.fetch 'LOG', :info
-
- def self.log(level, string=nil, output: $stdout, &block)
- return unless enabled? level
- output.puts(string ? string : block.call)
- end
-
- 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
-
- 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
|