mirror of
				https://gitea.invidious.io/iv-org/shard-kemal.git
				synced 2024-08-15 00:53:36 +00:00 
			
		
		
		
	add colorize for logger
This commit is contained in:
		
							parent
							
								
									56e3d36d7e
								
							
						
					
					
						commit
						e284ba8196
					
				
					 3 changed files with 50 additions and 2 deletions
				
			
		|  | @ -18,7 +18,6 @@ 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" | ||||
|  |  | |||
|  | @ -22,6 +22,8 @@ at_exit do | |||
|   logger.write "[#{config.env}] Kemal is ready to lead at #{config.scheme}://0.0.0.0:#{config.port}\n" | ||||
| 
 | ||||
|   Signal::INT.trap { | ||||
|     logger.write "Kemal is going to take a rest!\n" | ||||
|     logger.write "#{Time.now} - Bye Bye!\n\n" | ||||
|     logger.handler.close | ||||
|     server.close | ||||
|     exit | ||||
|  |  | |||
|  | @ -1,3 +1,5 @@ | |||
| require "colorize" | ||||
| 
 | ||||
| class Kemal::Logger < HTTP::Handler | ||||
|   getter handler | ||||
| 
 | ||||
|  | @ -17,7 +19,19 @@ class Kemal::Logger < HTTP::Handler | |||
|     response = call_next(request) | ||||
|     elapsed = Time.now - time | ||||
|     elapsed_text = elapsed_text(elapsed) | ||||
|     output_message = "#{request.method} #{request.resource} - #{response.status_code} (#{elapsed_text})\n" | ||||
| 
 | ||||
|     if @env == "production" | ||||
|       status_code = " #{response.status_code} " | ||||
|       method = request.method | ||||
|     else | ||||
|       statusColor = color_for_status(response.status_code) | ||||
|       methodColor = color_for_method(request.method) | ||||
| 
 | ||||
|       status_code = " #{response.status_code} ".colorize.back(statusColor).fore(:white) | ||||
|       method = request.method.colorize(methodColor) | ||||
|     end | ||||
| 
 | ||||
|     output_message = "#{time} |#{status_code}| #{method} #{request.resource} - (#{elapsed_text})\n" | ||||
|     write output_message | ||||
|     response | ||||
|   end | ||||
|  | @ -42,4 +56,37 @@ class Kemal::Logger < HTTP::Handler | |||
|       @handler.print message | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   private def color_for_status(code) | ||||
|     if code >= 200 && code < 300 | ||||
|       return :green | ||||
|     elsif code >= 300 && code < 400 | ||||
|       return :magenta | ||||
|     elsif code >= 400 && code < 500 | ||||
|       return :yellow | ||||
|     else | ||||
|       return :default | ||||
|     end | ||||
|   end | ||||
| 
 | ||||
|   private def color_for_method(method) | ||||
|     case method | ||||
|     when "GET" | ||||
|       return :blue | ||||
|     when "POST" | ||||
|       return :cyan | ||||
|     when "PUT" | ||||
|       return :yellow | ||||
|     when "DELETE" | ||||
|       return :red | ||||
|     when "PATCH" | ||||
|       return :green | ||||
|     when "HEAD" | ||||
|       return :magenta | ||||
|     when "OPTIONS" | ||||
|       return :white | ||||
|     else | ||||
|       return :default | ||||
|     end | ||||
|   end | ||||
| end | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue