Skip to content

Commit

Permalink
Cleaning up with a better logger.
Browse files Browse the repository at this point in the history
  • Loading branch information
Kurtis Rainbolt-Greene committed Apr 28, 2015
1 parent 5ec9e57 commit 60e8d29
Show file tree
Hide file tree
Showing 7 changed files with 39 additions and 17 deletions.
1 change: 0 additions & 1 deletion .rspec
Original file line number Diff line number Diff line change
@@ -1,3 +1,2 @@
--color
--format documentation
--profile
13 changes: 5 additions & 8 deletions lib/whiskey.rb
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,12 @@

module Whiskey
require_relative "whiskey/version"
require_relative "whiskey/logger"

def self.logger
@logger ||= Logger.new(STDOUT).tap do |log|
if ENV["WHISKEY_ENVIRONMENT"] == "development"
log.level = Logger::DEBUG
else
log.level = Logger::INFO
end
log.formatter = nil
def self.logger(manager = Logger.default)
@logger ||= manager.klass.new(manager.io).tap do |log|
log.level = manager.klass.const_get(manager.level)
log.formatter = manager.formatter
end
end
end
Expand Down
26 changes: 26 additions & 0 deletions lib/whiskey/logger.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
module Whiskey
class Logger
DEFAULT = "DEBUG"
DIRECT_ENV_KEY = "WHISKEY_LOG_LEVEL"
WHISKEY_ENV_KEY = "WHISKEY_ENVIRONMENT"

def self.default
new(::Logger, STDOUT, ENV, nil)
end

attr_reader :klass
attr_reader :io
attr_reader :formatter

def initialize(klass, io, env, formatter)
@klass = klass
@io = io
@env = env
@formatter = formatter
end

def level
@env.fetch(WHISKEY_ENV_KEY, @env.fetch(DIRECT_ENV_KEY, DEFAULT))
end
end
end
1 change: 1 addition & 0 deletions lib/whiskey/server.rb
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ class Server
def self.configure(options = {}, &block)
@@configuration = Configuration.new(options)
instance_exec(@@configuration, &block) if block_given?
Celluloid.logger(@@configuration.logger || Whiskey.logger)
start
end

Expand Down
4 changes: 3 additions & 1 deletion spec/lib/whiskey_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,9 @@

describe Whiskey do
describe ".logger" do
it "has a default log level of DEBUG in development mode"
it "has a default log level of DEBUG in development mode" do

end
it "has a default log level of INFO in production mode"
end
end
9 changes: 3 additions & 6 deletions spec/spec_helper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -8,14 +8,11 @@
require "whiskey/command"

shared_context "stubbed logging" do
let(:log_manager) { instance_double("LogManager") }
let(:logger) { double("Logger") }

before(:each) do
allow(logger).to receive(:info)
allow(logger).to receive(:debug)
allow(logger).to receive(:error)

allow(Whiskey).to receive(:logger).and_return(logger)
allow(log_manager).to receive(:klass).and_return(logger)
Whiskey.logger(log_manager)
end
end

Expand Down
2 changes: 1 addition & 1 deletion whiskey.gemspec
Original file line number Diff line number Diff line change
Expand Up @@ -27,8 +27,8 @@ Gem::Specification.new do |spec|
spec.add_runtime_dependency "thor", "~> 0.18"
spec.add_runtime_dependency "parslet", "~> 1.5"
spec.add_runtime_dependency "parslet-export", "~> 2.0"
spec.add_runtime_dependency "bundler", "~> 1.3"

spec.add_development_dependency "bundler", "~> 1.3"
spec.add_development_dependency "rspec", "~> 3.0"
spec.add_development_dependency "rake", "~> 10.1"
spec.add_development_dependency "pry", "~> 0.9"
Expand Down

0 comments on commit 60e8d29

Please sign in to comment.