Module: VagrantCloud::Logger
- Included in:
- Client, Instrumentor::Logger
- Defined in:
- lib/vagrant_cloud/logger.rb
Constant Summary collapse
- @@lock =
Mutex.new
Class Method Summary collapse
-
.default ⇒ Log4r::Logger
Default logger.
- .included(klass) ⇒ Object
Instance Method Summary collapse
-
#logger ⇒ Log4r::Logger
Logger instance for current context.
Class Method Details
.default ⇒ Log4r::Logger
Returns default logger.
7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
# File 'lib/vagrant_cloud/logger.rb', line 7 def self.default @@lock.synchronize do if !@logger # Require Log4r and define the levels we'll be using require 'log4r/config' Log4r.define_levels(*Log4r::Log4rConfig::LogLevels) level = nil begin level = Log4r.const_get(ENV.fetch("VAGRANT_CLOUD_LOG", "FATAL").upcase) rescue NameError # This means that the logging constant wasn't found, # which is fine. We just keep `level` as `nil`. But # we tell the user. level = nil end # Some constants, such as "true" resolve to booleans, so the # above error checking doesn't catch it. This will check to make # sure that the log level is an integer, as Log4r requires. level = nil if !level.is_a?(Integer) # Only override the log output format if the default is set if Log4r::Outputter.stderr.formatter.is_a?(Log4r::DefaultFormatter) base_formatter = Log4r::PatternFormatter.new( pattern: "%d [%5l] %m", date_pattern: "%F %T" ) Log4r::Outputter.stderr.formatter = base_formatter end logger = Log4r::Logger.new("vagrantcloud") logger.outputters = Log4r::Outputter.stderr logger.level = level @logger = logger end end @logger end |
.included(klass) ⇒ Object
47 48 49 50 |
# File 'lib/vagrant_cloud/logger.rb', line 47 def self.included(klass) klass.class_variable_set(:@@logger, Log4r::Logger.new(klass.name.downcase)) klass.class_eval { define_method(:logger) { self.class.class_variable_get(:@@logger) } } end |
Instance Method Details
#logger ⇒ Log4r::Logger
Returns logger instance for current context.
53 54 55 56 57 58 59 60 |
# File 'lib/vagrant_cloud/logger.rb', line 53 def logger @@lock.synchronize do if !@logger @logger = Log4r::Logger.new(self.class.name.downcase) end @logger end end |