mirror of
				https://gitea.invidious.io/iv-org/shard-kemal.git
				synced 2024-08-15 00:53:36 +00:00 
			
		
		
		
	
						commit
						8bac0a8aef
					
				
					 4 changed files with 31 additions and 6 deletions
				
			
		|  | @ -21,4 +21,11 @@ describe "Macros" do | ||||||
|       Kemal.config.handlers.size.should eq 1 |       Kemal.config.handlers.size.should eq 1 | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
|  | 
 | ||||||
|  |   describe "#logging" do | ||||||
|  |     it "sets logging status" do | ||||||
|  |       logging false | ||||||
|  |       Kemal.config.logging.should eq false | ||||||
|  |     end | ||||||
|  |   end | ||||||
| end | end | ||||||
|  |  | ||||||
							
								
								
									
										12
									
								
								src/kemal.cr
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								src/kemal.cr
									
										
									
									
									
								
							|  | @ -4,18 +4,20 @@ require "./kemal/middleware/*" | ||||||
| at_exit do | at_exit do | ||||||
|   Kemal::CLI.new |   Kemal::CLI.new | ||||||
|   config = Kemal.config |   config = Kemal.config | ||||||
|   logger = Kemal::Logger.new |   if config.logging | ||||||
|   config.add_handler logger |     logger = Kemal::Logger.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) |   config.add_handler Kemal::StaticFileHandler.new(config.public_folder) | ||||||
|   config.add_handler Kemal::Handler::INSTANCE |   config.add_handler Kemal::Handler::INSTANCE | ||||||
| 
 | 
 | ||||||
|   server = HTTP::Server.new(config.host_binding.not_nil!.to_slice, config.port, config.handlers) |   server = HTTP::Server.new(config.host_binding.not_nil!.to_slice, config.port, config.handlers) | ||||||
|   server.ssl = config.ssl |   server.ssl = config.ssl | ||||||
|   logger.write "[#{config.env}] Kemal is ready to lead at #{config.scheme}://#{config.host_binding}:#{config.port}\n" |  | ||||||
| 
 | 
 | ||||||
|   Signal::INT.trap { |   Signal::INT.trap { | ||||||
|     logger.write "Kemal is going to take a rest!\n" |     config.logger.write "Kemal is going to take a rest!\n" | ||||||
|     logger.handler.close |     config.logger.handler.close | ||||||
|     server.close |     server.close | ||||||
|     exit |     exit | ||||||
|   } |   } | ||||||
|  |  | ||||||
|  | @ -4,13 +4,15 @@ module Kemal | ||||||
|   class Config |   class Config | ||||||
|     INSTANCE = Config.new |     INSTANCE = Config.new | ||||||
|     HANDLERS = [] of HTTP::Handler |     HANDLERS = [] of HTTP::Handler | ||||||
|     property host_binding, ssl, port, env, public_folder |     property host_binding, ssl, port, env, public_folder, logging | ||||||
| 
 | 
 | ||||||
|     def initialize |     def initialize | ||||||
|       @host_binding = "0.0.0.0" unless @host_binding |       @host_binding = "0.0.0.0" unless @host_binding | ||||||
|       @port = 3000 |       @port = 3000 | ||||||
|       @env = "development" unless @env |       @env = "development" unless @env | ||||||
|       @public_folder = "./public" |       @public_folder = "./public" | ||||||
|  |       @logging = true | ||||||
|  |       @logger = nil | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|     def scheme |     def scheme | ||||||
|  | @ -21,6 +23,15 @@ module Kemal | ||||||
|       HANDLERS |       HANDLERS | ||||||
|     end |     end | ||||||
| 
 | 
 | ||||||
|  |     def logger | ||||||
|  |       @logger.not_nil! | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|  |     def logger=(logger) | ||||||
|  |       HANDLERS << logger | ||||||
|  |       @logger = logger | ||||||
|  |     end | ||||||
|  | 
 | ||||||
|     def add_handler(handler : HTTP::Handler) |     def add_handler(handler : HTTP::Handler) | ||||||
|       HANDLERS << handler |       HANDLERS << handler | ||||||
|     end |     end | ||||||
|  |  | ||||||
|  | @ -41,3 +41,8 @@ end | ||||||
| macro log(message) | macro log(message) | ||||||
|   Kemal::Logger::INSTANCE.write "#{{{message}}}\n" |   Kemal::Logger::INSTANCE.write "#{{{message}}}\n" | ||||||
| end | end | ||||||
|  | 
 | ||||||
|  | # Enables / Disables logging | ||||||
|  | macro logging(status) | ||||||
|  |   Kemal.config.logging = {{status}} | ||||||
|  | end | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue