Sha256: 8697d1bb286267062fb20f128fa4c022edf765fd62d448d25c95b20582ba31f1
Contents?: true
Size: 1.22 KB
Versions: 2
Compression:
Stored size: 1.22 KB
Contents
module Fasten class << self attr_accessor :logger end module Logger %w[debug info error].each do |method| define_method "log_#{method}" do |msg| return unless Fasten.logger.respond_to?(method) caller_name = name if respond_to? :name caller_name ||= Kernel.binding.of_caller(1).eval('self').class Fasten.logger.send(method, caller_name) { msg } end end def log_ini(object, message = nil) object.ini ||= Time.new log_info "Init #{object.class} #{object} #{message}" end def log_fin(object, message = nil) object.fin ||= Time.new object.dif = object.fin - object.ini log_info "Done #{object.class} #{object} #{message} in #{object.dif}" end def redirect_std(path) @saved_stdout = $stdout.clone @saved_stderr = $stderr.clone FileUtils.mkdir_p File.dirname(path) log = File.new path, 'a' log.sync = true $stdout.reopen log $stderr.reopen log end def restore_std $stdout.reopen(@saved_stdout) $stderr.reopen(@saved_stderr) end end end Fasten.logger ||= begin Logger.new(STDOUT, level: Logger::DEBUG, progname: $PROGRAM_NAME) rescue StandardError nil end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
fasten-0.5.2 | lib/fasten/logger.rb |
fasten-0.5.0 | lib/fasten/logger.rb |