mirror of
https://gitea.invidious.io/iv-org/shard-kemal.git
synced 2024-08-15 00:53:36 +00:00
Start decoupling logger
This commit is contained in:
parent
ffc3d6d224
commit
850af8819e
6 changed files with 15 additions and 12 deletions
|
@ -28,4 +28,10 @@ describe "Config" do
|
|||
config.add_handler CustomTestHandler.new
|
||||
config.handlers.size.should eq(1)
|
||||
end
|
||||
|
||||
it "sets a custom logger" do
|
||||
config = Kemal::Config::INSTANCE
|
||||
config.logger = CustomTestHandler.new
|
||||
config.handlers.first.should be_a(CustomTestHandler)
|
||||
end
|
||||
end
|
||||
|
|
|
@ -2,27 +2,27 @@ require "./spec_helper"
|
|||
|
||||
describe "Kemal::LogHandler" do
|
||||
it "creates a handler" do
|
||||
logger = Kemal::LogHandler.new
|
||||
logger = Kemal::LogHandler.new "production"
|
||||
logger.handler.should_not be nil
|
||||
end
|
||||
|
||||
it "creates a STDOUT handler by default" do
|
||||
config = Kemal.config
|
||||
logger = Kemal::LogHandler.new
|
||||
logger = Kemal::LogHandler.new "production"
|
||||
logger.handler.should be_a IO
|
||||
end
|
||||
|
||||
it "creates a file handler in production" do
|
||||
config = Kemal.config
|
||||
config.env = "production"
|
||||
logger = Kemal::LogHandler.new
|
||||
logger = Kemal::LogHandler.new "production"
|
||||
logger.handler.should be_a File
|
||||
end
|
||||
|
||||
it "writes to a file in production" do
|
||||
config = Kemal.config
|
||||
config.env = "production"
|
||||
logger = Kemal::LogHandler.new
|
||||
logger = Kemal::LogHandler.new "production"
|
||||
request = HTTP::Request.new("GET", "/?message=world&time=now")
|
||||
io = MemoryIO.new
|
||||
response = HTTP::Server::Response.new(io)
|
||||
|
|
|
@ -5,8 +5,6 @@ at_exit do
|
|||
Kemal::CLI.new
|
||||
config = Kemal.config
|
||||
if config.logging
|
||||
logger = Kemal::LogHandler.new
|
||||
config.logger = logger
|
||||
config.logger.write "[#{config.env}] Kemal is ready to lead at #{config.scheme}://#{config.host_binding}:#{config.port}\n"
|
||||
end
|
||||
config.add_handler Kemal::StaticFileHandler.new(config.public_folder)
|
||||
|
|
|
@ -2,7 +2,7 @@ module Kemal
|
|||
class Config
|
||||
INSTANCE = Config.new
|
||||
HANDLERS = [] of HTTP::Handler
|
||||
property host_binding, ssl, port, env, public_folder, logging
|
||||
property host_binding, ssl, port, env, public_folder, logging, logger
|
||||
|
||||
def initialize
|
||||
@host_binding = "0.0.0.0" unless @host_binding
|
||||
|
@ -10,7 +10,7 @@ module Kemal
|
|||
@env = "development" unless @env
|
||||
@public_folder = "./public"
|
||||
@logging = true
|
||||
@logger = nil
|
||||
@logger = Kemal::LogHandler.new(@env) unless @logging
|
||||
end
|
||||
|
||||
def scheme
|
||||
|
|
|
@ -2,11 +2,10 @@ require "colorize"
|
|||
require "http"
|
||||
|
||||
class Kemal::LogHandler < HTTP::Handler
|
||||
INSTANCE = new
|
||||
# INSTANCE = new
|
||||
getter handler
|
||||
|
||||
def initialize
|
||||
@env = Kemal.config.env
|
||||
def initialize(@env)
|
||||
@handler = if @env == "production"
|
||||
handler = File.new("kemal.log", "a")
|
||||
handler.flush_on_newline = true
|
||||
|
|
|
@ -35,7 +35,7 @@ class Kemal::RouteHandler < HTTP::Handler
|
|||
context.response.print body
|
||||
return context
|
||||
rescue ex
|
||||
Kemal::LogHandler::INSTANCE.write "Exception: #{ex.to_s}\n"
|
||||
# Kemal.config.logger.write "Exception: #{ex.to_s}\n"
|
||||
return render_500(context, ex.to_s)
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue