From 87b1a6660d6c2cc814a76e95cc2583c929d15ae0 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sat, 7 Jan 2012 13:13:17 -0800 Subject: [PATCH] Handle invalid log levels more gracefully --- lib/vagrant.rb | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/lib/vagrant.rb b/lib/vagrant.rb index 966250ba4..73e13de9c 100644 --- a/lib/vagrant.rb +++ b/lib/vagrant.rb @@ -1,12 +1,27 @@ # Enable logging if it is requested. We do this before # anything else so that we can setup the output before # any logging occurs. -if ENV["VAGRANT_LOG"] +if ENV["VAGRANT_LOG"] && ENV["VAGRANT_LOG"] != "" require 'log4r' - logger = Log4r::Logger.new("vagrant") - logger.outputters = Log4r::Outputter.stdout - logger.level = Log4r.const_get(ENV["VAGRANT_LOG"].upcase) - logger = nil + + level = nil + begin + level = Log4r.const_get(ENV["VAGRANT_LOG"].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. + $stderr.puts "Invalid VAGRANT_LOG level is set: #{ENV["VAGRANT_LOG"}" + end + + # Set the logging level on all "vagrant" namespaced + # logs as long as we have a valid level. + if level + logger = Log4r::Logger.new("vagrant") + logger.outputters = Log4r::Outputter.stdout + logger.level = level + logger = nil + end end require 'pathname'