More logger specs

This commit is contained in:
Sdogruyol 2015-11-20 23:07:10 +02:00
parent 0e23e8d9a3
commit f66e9cd834
2 changed files with 21 additions and 5 deletions

View file

@ -1,6 +1,11 @@
require "./spec_helper"
describe "Logger" do
it "creates a handler" do
logger = Kemal::Logger.new
logger.handler.should_not be nil
end
it "creates a STDOUT handler by default" do
config = Kemal.config
logger = Kemal::Logger.new
@ -13,4 +18,15 @@ describe "Logger" do
logger = Kemal::Logger.new
logger.handler.should be_a File
end
it "writes to a file in production" do
config = Kemal.config
config.env = "production"
logger = Kemal::Logger.new
request = HTTP::Request.new("GET", "/?message=world&time=now")
logger.call request
str = File.read("kemal.log")
File.delete("kemal.log")
str.includes?("GET /?message=world&time=now").should eq true
end
end

View file

@ -4,10 +4,10 @@ class Kemal::Logger < HTTP::Handler
def initialize
@env = Kemal.config.env
@handler = if @env == "production"
File.new("kemal.log", "a+")
else
STDOUT
end
File.new("kemal.log", "a")
else
STDOUT
end
end
def call(request)
@ -35,7 +35,7 @@ class Kemal::Logger < HTTP::Handler
def write(message)
if @env == "production"
@handler.write message.to_slice
File.write "kemal.log", message
else
@handler.print message
end