Module: Morpheus::Logging
- Defined in:
- lib/morpheus/logging.rb
Overview
Provides global Logging behavior By default, Morpheus::Logging.logger is set to STDOUT with level INFO
Defined Under Namespace
Modules: HasLogger Classes: DarkPrinter, Logger
Constant Summary collapse
- DEFAULT_LOG_LEVEL =
ENV['DEBUG'] ? Logger::DEBUG : Logger::INFO
- @@log_level =
DEFAULT_LOG_LEVEL- @@logger =
nil
Class Method Summary collapse
-
.debug? ⇒ Boolean
is log level debug?.
-
.log_level ⇒ Object
set the global log level.
-
.logger ⇒ Object
get the global logger instance.
-
.print_stacktrace? ⇒ Boolean
whether or not to print stack traces.
-
.scrub_message(msg) ⇒ Object
mask well known secrets and password patterns.
-
.set_log_level(level) ⇒ Object
set the global log level.
-
.set_logger(logdev, log_level = @@log_level) ⇒ Object
set the global logger to another logger or filename.
Class Method Details
.debug? ⇒ Boolean
is log level debug?
69 70 71 72 |
# File 'lib/morpheus/logging.rb', line 69 def self.debug? # self.log_level && self.log_level <= Logger::DEBUG self.logger.debug? end |
.log_level ⇒ Object
set the global log level
50 51 52 |
# File 'lib/morpheus/logging.rb', line 50 def self.log_level @@log_level end |
.logger ⇒ Object
get the global logger instance
32 33 34 35 36 37 |
# File 'lib/morpheus/logging.rb', line 32 def self.logger if !@@logger set_logger(STDOUT, @@log_level) end @@logger end |
.print_stacktrace? ⇒ Boolean
whether or not to print stack traces
75 76 77 |
# File 'lib/morpheus/logging.rb', line 75 def self.print_stacktrace? self.debug? end |
.scrub_message(msg) ⇒ Object
mask well known secrets and password patterns
80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/morpheus/logging.rb', line 80 def self.(msg) if msg.is_a?(String) msg = msg.clone msg.gsub!(/Authorization\"\s?\=\>\s?\"Bearer [^"]+/, 'Authorization"=>"Bearer ************') msg.gsub!(/Authorization\:\s?Bearer [^"'']+/, 'Authorization: Bearer ************') msg.gsub!(/password\"\s?\=\>\s?\"[^"]+/, 'password"=>"************') msg.gsub!(/password\=\"[^"]+/, 'password="************') msg.gsub!(/password\=[^"'&\Z]+/, 'password=************') # buggy, wont work with ampersand or quotes in passwords! heh msg.gsub!(/passwordConfirmation\=[^" ]+/, 'passwordConfirmation="************') msg.gsub!(/passwordConfirmation\=[^" ]+/, 'passwordConfirmation=************') end msg end |
.set_log_level(level) ⇒ Object
set the global log level
55 56 57 58 59 60 61 |
# File 'lib/morpheus/logging.rb', line 55 def self.set_log_level(level) @@log_level = level.to_i if @@logger @@logger.level = @@log_level end @@log_level end |
.set_logger(logdev, log_level = @@log_level) ⇒ Object
set the global logger to another logger or filename
40 41 42 43 44 45 46 47 |
# File 'lib/morpheus/logging.rb', line 40 def self.set_logger(logdev, log_level = @@log_level) @@logger = logdev.is_a?(Logger) ? logdev : Logger.new(logdev) @@logger.level = log_level || DEFAULT_LOG_LEVEL @@logger.formatter = proc do |severity, datetime, progname, msg| "#{msg}\n" end @@logger end |