diff --git a/lib/knapsack.rb b/lib/knapsack.rb index 9f14943..22c920a 100644 --- a/lib/knapsack.rb +++ b/lib/knapsack.rb @@ -48,7 +48,7 @@ def load_tasks def logger return @@logger if @@logger log = Knapsack::Logger.new - log.level = Knapsack::Logger::INFO + log.level = Knapsack::Config::Env.log_level @@logger = log end diff --git a/lib/knapsack/config/env.rb b/lib/knapsack/config/env.rb index b1bd75a..3e42c7f 100644 --- a/lib/knapsack/config/env.rb +++ b/lib/knapsack/config/env.rb @@ -22,6 +22,14 @@ def test_dir ENV['KNAPSACK_TEST_DIR'] end + def log_level + { + "debug" => Knapsack::Logger::DEBUG, + "info" => Knapsack::Logger::INFO, + "warn" => Knapsack::Logger::WARN, + }[ENV['KNAPSACK_LOG_LEVEL']] || Knapsack::Logger::INFO + end + private def index_starting_from_one(index) diff --git a/spec/knapsack/config/env_spec.rb b/spec/knapsack/config/env_spec.rb index 59f4695..8115d96 100644 --- a/spec/knapsack/config/env_spec.rb +++ b/spec/knapsack/config/env_spec.rb @@ -110,4 +110,18 @@ it { should be_nil } end end + + describe '.log_level' do + subject { described_class.log_level } + + context 'when ENV exists' do + let(:log_level) { 'debug' } + before { stub_const("ENV", { 'KNAPSACK_LOG_LEVEL' => log_level }) } + it { should eql Knapsack::Logger::DEBUG } + end + + context "when ENV doesn't exist" do + it { should eql Knapsack::Logger::INFO } + end + end end