Module: CemWinSpec::Logging
- Included in:
- CemWinSpec, IapTunnel, ModuleArchiveBuilder, TestRunner, WinExec::BaseCmd, WinExec::ConnectionOpts, WinExec::Exec, WinExec::Factory, WinExec::Output
- Defined in:
- lib/cem_win_spec/logging.rb,
lib/cem_win_spec/logging/formatter.rb
Overview
Logging for CemWinSpec
Defined Under Namespace
Modules: Formatter Classes: MultiLogger
Constant Summary collapse
- LEVEL_MAP =
{ 'debug' => Logger::DEBUG, 'info' => Logger::INFO, 'warn' => Logger::WARN, 'error' => Logger::ERROR, 'fatal' => Logger::FATAL, 'unknown' => Logger::UNKNOWN, }
Class Method Summary collapse
-
.current_log_format ⇒ Symbol
Shows the current log format style if set, or the default if not.
-
.current_log_level ⇒ Logger::Severity
Shortcut method for logger.level.
-
.included(base) ⇒ Object
Provides class method wrappers for logging methods.
- .log_setup!(options = {}) ⇒ Object
-
.logger ⇒ Logger
Exposes a logger instance.
-
.new_log_formatter(f) ⇒ Proc
Sets the current log format style and returns a proc to be passed to Logger#formatter=.
-
.new_log_level(level) ⇒ Object
Gets a log level from a string and returns the corresponding Logger::Severity constant.
Instance Method Summary collapse
- #current_log_format ⇒ Object
-
#current_log_level ⇒ Object
Exposes the current log level.
- #log_setup!(options = {}) ⇒ Object
-
#logger ⇒ Object
Exposes the logger instance.
- #new_log_formatter(f) ⇒ Object
-
#new_log_level(level) ⇒ Object
Exposes setting the log level.
Class Method Details
.current_log_format ⇒ Symbol
Shows the current log format style if set, or the default if not.
104 105 106 |
# File 'lib/cem_win_spec/logging.rb', line 104 def current_log_format @current_log_format ||= :text end |
.current_log_level ⇒ Logger::Severity
Shortcut method for logger.level
89 90 91 |
# File 'lib/cem_win_spec/logging.rb', line 89 def current_log_level logger.level end |
.included(base) ⇒ Object
Provides class method wrappers for logging methods
118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 |
# File 'lib/cem_win_spec/logging.rb', line 118 def self.included(base) class << base def log_setup!( = {}) CemWinSpec::Logging.log_setup!() end def logger CemWinSpec::Logging.logger end def current_log_level CemWinSpec::Logging.current_log_level end def new_log_level(level) CemWinSpec::Logging.new_log_level(level) end def current_log_format CemWinSpec::Logging.current_log_format end def new_log_formatter(f) CemWinSpec::Logging.new_log_formatter(f) end end end |
.log_setup!(options = {}) ⇒ Object
40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/cem_win_spec/logging.rb', line 40 def log_setup!( = {}) console_l_level = if (.key?(:debug) && [:debug]) || ENV['RUNNER_DEBUG'] new_log_level('debug') else new_log_level('info') end console_l_formatter = if ENV['CI'] || ENV['GITHUB_ACTIONS'] new_log_formatter([:log_format] || 'github_action') else new_log_formatter([:log_format] || 'text') end file_l_level = new_log_level([:log_level] || 'debug') file_l_formatter = new_log_formatter([:log_format] || 'file') loggers = [] if [:log_file] loggers << ::Logger.new( [:log_file], level: file_l_level, formatter: file_l_formatter, progname: 'CemWinSpec', datetime_format: '%Y%m%dT%H%M%S%z', ) end unless [:quiet] loggers << ::Logger.new( $stdout, level: console_l_level, formatter: console_l_formatter, progname: 'CemWinSpec', datetime_format: '%Y%m%dT%H%M%S%z', ) end @logger = MultiLogger.new(*loggers) end |
.logger ⇒ Logger
Exposes a logger instance. Will either use the currently set logger or create a new one.
78 79 80 81 82 83 84 85 |
# File 'lib/cem_win_spec/logging.rb', line 78 def logger unless @logger warn 'Logger not set up! Setting up default logger.' log_setup! end @logger end |
.new_log_formatter(f) ⇒ Proc
Sets the current log format style and returns a proc to be passed to Logger#formatter=
112 113 114 |
# File 'lib/cem_win_spec/logging.rb', line 112 def new_log_formatter(f) Formatter.for(f) end |
.new_log_level(level) ⇒ Object
Gets a log level from a string and returns the corresponding Logger::Severity constant.
96 97 98 99 100 |
# File 'lib/cem_win_spec/logging.rb', line 96 def new_log_level(level) raise ArgumentError, 'Log level not recognized' unless LEVEL_MAP[level.to_s.downcase] LEVEL_MAP[level.downcase] end |
Instance Method Details
#current_log_format ⇒ Object
165 166 167 |
# File 'lib/cem_win_spec/logging.rb', line 165 def current_log_format CemWinSpec::Logging.current_log_format end |
#current_log_level ⇒ Object
Exposes the current log level
156 157 158 |
# File 'lib/cem_win_spec/logging.rb', line 156 def current_log_level CemWinSpec::Logging.current_log_level end |
#log_setup!(options = {}) ⇒ Object
146 147 148 |
# File 'lib/cem_win_spec/logging.rb', line 146 def log_setup!( = {}) CemWinSpec::Logging.log_setup!() end |
#logger ⇒ Object
Exposes the logger instance
151 152 153 |
# File 'lib/cem_win_spec/logging.rb', line 151 def logger CemWinSpec::Logging.logger end |
#new_log_formatter(f) ⇒ Object
169 170 171 |
# File 'lib/cem_win_spec/logging.rb', line 169 def new_log_formatter(f) CemWinSpec::Logging.new_log_formatter(f) end |
#new_log_level(level) ⇒ Object
Exposes setting the log level
161 162 163 |
# File 'lib/cem_win_spec/logging.rb', line 161 def new_log_level(level) CemWinSpec::Logging.new_log_level(level) end |