Module: K8s::Logging
Overview
Logging utilities
This provides a per-class Logger that uses the class name as a logging prefix. Instances can optionally also use logger! to define a per-instance Logger using a custom prefix.
Defined Under Namespace
Modules: ClassMethods, ModuleMethods
Constant Summary collapse
- LOG_TARGET =
Default log target
$stderr
- LOG_LEVEL =
Default log level: show warnings.
Use K8s::Logging.quiet! to supress warnings. Note that the K8s::Transport defaults to quiet!
Logger::WARN
Class Method Summary collapse
-
.included(base) ⇒ Object
extend class/intance methods for per-class logger.
Instance Method Summary collapse
- #logger ⇒ Logger
-
#logger!(progname: self.class.name, target: LOG_TARGET, level: nil, debug: false) ⇒ Logger
Use per-instance logger instead of the default per-class logger.
Methods included from ModuleMethods
debug!, log_level, log_level=, quiet!, verbose!
Class Method Details
.included(base) ⇒ Object
extend class/intance methods for per-class logger
63 64 65 66 |
# File 'lib/k8s/logging.rb', line 63 def self.included(base) base.extend(ModuleMethods) # per-class @log_level base.extend(ClassMethods) end |
Instance Method Details
#logger ⇒ Logger
83 84 85 |
# File 'lib/k8s/logging.rb', line 83 def logger @logger || self.class.logger end |
#logger!(progname: self.class.name, target: LOG_TARGET, level: nil, debug: false) ⇒ Logger
Use per-instance logger instead of the default per-class logger
Sets the instance variable returned by #logger
73 74 75 76 77 78 79 80 |
# File 'lib/k8s/logging.rb', line 73 def logger!(progname: self.class.name, target: LOG_TARGET, level: nil, debug: false) @logger = Logger.new(target).tap do |logger| level = Logger::DEBUG if debug logger.progname = "#{self.class.name}<#{progname}>" logger.level = level || self.class.log_level || K8s::Logging.log_level || LOG_LEVEL end end |