module BerkeleyLibrary::Logging
Include this module to get access to a shared global logger.
Constants
- ENV_PREDICATES
- FALLBACK_ENV
- LOG_METHODS
Public Class Methods
env()
click to toggle source
# File lib/berkeley_library/logging/env.rb, line 10 def env return Rails.env if defined?(Rails) @env ||= begin # Note: can't just self.env= b/c it returns the wrong value -- see # https://stackoverflow.com/q/65226532/27358 env = (ENV['RAILS_ENV'] || ENV['RACK_ENV'] || FALLBACK_ENV) ensure_rails_env_like(env) end end
env=(v)
click to toggle source
# File lib/berkeley_library/logging/env.rb, line 21 def env=(v) if defined?(Rails) Rails.env = v else @env = ensure_rails_env_like(v) end end
logger()
click to toggle source
# File lib/berkeley_library/logging.rb, line 19 def logger @logger ||= BerkeleyLibrary::Logging::Loggers.default_logger end
logger=(v)
click to toggle source
# File lib/berkeley_library/logging.rb, line 23 def logger=(v) @logger = (ensure_logger(v) unless v.nil?) end
Private Class Methods
ensure_logger(v)
click to toggle source
# File lib/berkeley_library/logging.rb, line 31 def ensure_logger(v) return v if (missing = LOG_METHODS.reject { |m| v.respond_to?(m) }).empty? raise ArgumentError, "Not a logger: #{v.inspect} does not respond to #{missing.join(', ')}" end
ensure_rails_env_like(v)
click to toggle source
# File lib/berkeley_library/logging/env.rb, line 31 def ensure_rails_env_like(v) return v if ENV_PREDICATES.all? { |p| v.respond_to?(p) } ActiveSupport::StringInquirer.new(v) end
Public Instance Methods
logger()
click to toggle source
# File lib/berkeley_library/logging.rb, line 10 def logger Logging.logger end
logger=(v)
click to toggle source
# File lib/berkeley_library/logging.rb, line 14 def logger=(v) Logging.logger = v end