Module: YleTf::Logger
- Extended by:
- Forwardable
- Defined in:
- lib/yle_tf/logger.rb
Overview
Logger for debug, error, etc. outputs. Prints to STDERR, so it does not mess with e.g. ‘terraform output`.
Class Method Summary collapse
- .log_formatter ⇒ Object
- .log_level ⇒ Object
- .logger ⇒ Object
-
.patch_for_old_ruby(logger) ⇒ Object
Patches the ‘::Logger` in older Ruby versions to accept log level as a `String`.
Class Method Details
.log_formatter ⇒ Object
29 30 31 32 33 34 35 36 37 |
# File 'lib/yle_tf/logger.rb', line 29 def self.log_formatter proc do |severity, _datetime, progname, msg| if progname "[#{progname}] #{severity}: #{msg}\n" else "#{severity}: #{msg}\n" end end end |
.log_level ⇒ Object
23 24 25 26 27 |
# File 'lib/yle_tf/logger.rb', line 23 def self.log_level (ENV['TF_DEBUG'] && 'DEBUG') || \ ENV['TF_LOG'] || \ 'INFO' end |
.logger ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/yle_tf/logger.rb', line 15 def self.logger @logger ||= ::Logger.new(STDERR).tap do |logger| patch_for_old_ruby(logger) logger.level = log_level logger.formatter = log_formatter end end |
.patch_for_old_ruby(logger) ⇒ Object
Patches the ‘::Logger` in older Ruby versions to accept log level as a `String`
41 42 43 44 45 46 |
# File 'lib/yle_tf/logger.rb', line 41 def self.patch_for_old_ruby(logger) if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.3') require_relative '../../vendor/logger_level_patch' logger.extend(LoggerLevelPatch) end end |