class Eco::API::Common::Session::Logger
Constants
- DEFAULT_TIMESTAMP_PATTERN
Attributes
cache[R]
Public Class Methods
new(console_level: nil, file_level: ::Logger::DEBUG, log_file: nil, timestamp_console: false, enviro: nil)
click to toggle source
# File lib/eco/api/common/session/logger.rb, line 10 def initialize(console_level: nil, file_level: ::Logger::DEBUG, log_file: nil, timestamp_console: false, enviro: nil) raise "Required Environment object (enviro:). Given: #{enviro}" if enviro && !enviro.is_a?(Eco::API::Common::Session::Environment) @enviro = enviro @cache = Logger::Cache.new timestamp_console = fetch_timestamp_console(timestamp_console) @console_logger = ::Logger.new(STDOUT).tap do |_logger| _logger.formatter = proc do |severity, datetime, progname, msg| str_timestamp = timestamp_console ? "#{datetime.strftime(DEFAULT_TIMESTAMP_PATTERN)} >" : "" "#{severity.to_s[0]}: #{str_timestamp} #{msg}\n" end _logger.level = fetch_console_level(console_level) end if log_file = fetch_log_file(log_file) @file_logger = ::Logger.new(log_file).tap do |_logger| _logger.formatter = proc do |severity, datetime, progname, msg| "#{severity.to_s[0]}: #{datetime.strftime(DEFAULT_TIMESTAMP_PATTERN)} > #{msg}\n".tap do |formatted| cache.add(severity, datetime, msg, formatted) end end _logger.level = fetch_file_level(file_level) end end end
Public Instance Methods
<<(msg)
click to toggle source
# File lib/eco/api/common/session/logger.rb, line 64 def << (msg) @console_logger << msg unless !@console_logger @file_logger << msg unless !@file_logger end
add(*args)
click to toggle source
# File lib/eco/api/common/session/logger.rb, line 74 def add(*args) @console_logger.add(*args) unless !@console_logger @file_logger.add(*args) unless !@file_logger end
close()
click to toggle source
# File lib/eco/api/common/session/logger.rb, line 69 def close() @console_logger.close unless !@console_logger @file_logger.close unless !@file_logger end
debug(*args, &block)
click to toggle source
# File lib/eco/api/common/session/logger.rb, line 40 def debug(*args, &block) log(:debug, *args, &block) end
error(*args, &block)
click to toggle source
# File lib/eco/api/common/session/logger.rb, line 52 def error(*args, &block) return log(:error, *args, &block) end
fatal(*args, &block)
click to toggle source
# File lib/eco/api/common/session/logger.rb, line 56 def fatal(*args, &block) return log(:fatal, *args, &block) end
info(*args, &block)
click to toggle source
# File lib/eco/api/common/session/logger.rb, line 44 def info(*args, &block) log(:info, *args, &block) end
level=(value)
click to toggle source
# File lib/eco/api/common/session/logger.rb, line 36 def level=(value) @console_logger.level = value end
unkown(msg, &block)
click to toggle source
# File lib/eco/api/common/session/logger.rb, line 60 def unkown(msg, &block) return log(:unkown, *args, &block) end
warn(*args, &block)
click to toggle source
# File lib/eco/api/common/session/logger.rb, line 48 def warn(*args, &block) return log(:warn, *args, &block) end
Private Instance Methods
config()
click to toggle source
# File lib/eco/api/common/session/logger.rb, line 86 def config @enviro.config || {} end
fetch_console_level(value)
click to toggle source
# File lib/eco/api/common/session/logger.rb, line 94 def fetch_console_level(value) value || config.logger.console_level || ::Logger::INFO end
fetch_file_level(value)
click to toggle source
# File lib/eco/api/common/session/logger.rb, line 98 def fetch_file_level(value) value || config.logger.file_level || ::Logger::DEBUG end
fetch_log_file(log_file)
click to toggle source
# File lib/eco/api/common/session/logger.rb, line 102 def fetch_log_file(log_file) if log_file ||= config.logger.file log_file = @enviro.file_manager.dir.file(log_file) if @enviro FileManager.create_directory(log_file, includes_file: true) end log_file end
fetch_timestamp_console(value)
click to toggle source
# File lib/eco/api/common/session/logger.rb, line 90 def fetch_timestamp_console(value) value || config.logger.timestamp_console end
log(level, *args, &block)
click to toggle source
# File lib/eco/api/common/session/logger.rb, line 81 def log(level, *args, &block) @console_logger.send(level, *args, &block) unless !@console_logger @file_logger.send(level, *args, &block) unless !@file_logger end