mirror of
https://github.com/HoneyryderChuck/httpx.git
synced 2025-08-10 00:01:27 -04:00
added color as a parameter to logs, using ANSI
This commit is contained in:
parent
25fd0bbf75
commit
e36a91b6cc
@ -87,8 +87,8 @@ module HTTPX
|
||||
@parser.status_code,
|
||||
@parser.http_version.join("."),
|
||||
headers, @options)
|
||||
log { "-> HEADLINE: #{response.status} HTTP/#{@parser.http_version.join(".")}" }
|
||||
log { response.headers.each.map { |f, v| "-> HEADER: #{f}: #{v}" }.join("\n") }
|
||||
log(color: :yellow) { "-> HEADLINE: #{response.status} HTTP/#{@parser.http_version.join(".")}" }
|
||||
log(color: :yellow) { response.headers.each.map { |f, v| "-> HEADER: #{f}: #{v}" }.join("\n") }
|
||||
|
||||
request.response = response
|
||||
|
||||
@ -96,8 +96,8 @@ module HTTPX
|
||||
end
|
||||
|
||||
def on_body(chunk)
|
||||
log { "-> DATA: #{chunk.bytesize} bytes..." }
|
||||
log(level: 2) { "-> #{chunk.inspect}" }
|
||||
log(color: :green) { "-> DATA: #{chunk.bytesize} bytes..." }
|
||||
log(level: 2, color: :green) { "-> #{chunk.inspect}" }
|
||||
response = @requests.first.response
|
||||
|
||||
response << chunk
|
||||
@ -184,12 +184,12 @@ module HTTPX
|
||||
def join_headers(request)
|
||||
buffer = +""
|
||||
buffer << "#{request.verb.to_s.upcase} #{headline_uri(request)} HTTP/#{@version.join(".")}" << CRLF
|
||||
log { "<- HEADLINE: #{buffer.chomp.inspect}" }
|
||||
log(color: :yellow) { "<- HEADLINE: #{buffer.chomp.inspect}" }
|
||||
@buffer << buffer
|
||||
buffer.clear
|
||||
request.headers.each do |field, value|
|
||||
buffer << "#{capitalized(field)}: #{value}" << CRLF
|
||||
log { "<- HEADER: #{buffer.chomp}" }
|
||||
log(color: :yellow) { "<- HEADER: #{buffer.chomp}" }
|
||||
@buffer << buffer
|
||||
buffer.clear
|
||||
end
|
||||
@ -200,8 +200,8 @@ module HTTPX
|
||||
def join_body(request)
|
||||
return if request.empty?
|
||||
while (chunk = request.drain_body)
|
||||
log { "<- DATA: #{chunk.bytesize} bytes..." }
|
||||
log(level: 2) { "<- #{chunk.inspect}" }
|
||||
log(color: :green) { "<- DATA: #{chunk.bytesize} bytes..." }
|
||||
log(level: 2, color: :green) { "<- #{chunk.inspect}" }
|
||||
@buffer << chunk
|
||||
throw(:buffer_full, request) if @buffer.full?
|
||||
end
|
||||
|
@ -107,7 +107,7 @@ module HTTPX
|
||||
headers[":path"] = headline_uri(request)
|
||||
headers[":authority"] = request.authority
|
||||
headers = headers.merge(request.headers)
|
||||
log(level: 1, label: "#{stream.id}: ") do
|
||||
log(level: 1, label: "#{stream.id}: ", color: :yellow) do
|
||||
headers.map { |k, v| "-> HEADER: #{k}: #{v}" }.join("\n")
|
||||
end
|
||||
stream.headers(headers, end_stream: request.empty?)
|
||||
@ -117,8 +117,8 @@ module HTTPX
|
||||
chunk = @drains.delete(request) || request.drain_body
|
||||
while chunk
|
||||
next_chunk = request.drain_body
|
||||
log(level: 1, label: "#{stream.id}: ") { "-> DATA: #{chunk.bytesize} bytes..." }
|
||||
log(level: 2, label: "#{stream.id}: ") { "-> #{chunk.inspect}" }
|
||||
log(level: 1, label: "#{stream.id}: ", color: :green) { "-> DATA: #{chunk.bytesize} bytes..." }
|
||||
log(level: 2, label: "#{stream.id}: ", color: :green) { "-> #{chunk.inspect}" }
|
||||
stream.data(chunk, end_stream: !next_chunk)
|
||||
if next_chunk && @buffer.full?
|
||||
@drains[request] = next_chunk
|
||||
@ -133,7 +133,7 @@ module HTTPX
|
||||
######
|
||||
|
||||
def on_stream_headers(stream, request, h)
|
||||
log(label: "#{stream.id}:") do
|
||||
log(label: "#{stream.id}:", color: :yellow) do
|
||||
h.map { |k, v| "<- HEADER: #{k}: #{v}" }.join("\n")
|
||||
end
|
||||
_, status = h.shift
|
||||
@ -144,8 +144,8 @@ module HTTPX
|
||||
end
|
||||
|
||||
def on_stream_data(stream, request, data)
|
||||
log(level: 1, label: "#{stream.id}: ") { "<- DATA: #{data.bytesize} bytes..." }
|
||||
log(level: 2, label: "#{stream.id}: ") { "<- #{data.inspect}" }
|
||||
log(level: 1, label: "#{stream.id}: ", color: :green) { "<- DATA: #{data.bytesize} bytes..." }
|
||||
log(level: 2, label: "#{stream.id}: ", color: :green) { "<- #{data.inspect}" }
|
||||
request.response << data
|
||||
end
|
||||
|
||||
@ -175,12 +175,10 @@ module HTTPX
|
||||
|
||||
def on_frame_sent(frame)
|
||||
log(level: 2, label: "#{frame[:stream]}: ") { "frame was sent!" }
|
||||
log(level: 2, label: "#{frame[:stream]}: ") do
|
||||
log(level: 2, label: "#{frame[:stream]}: ", color: :blue) do
|
||||
case frame[:type]
|
||||
when :data
|
||||
frame.merge(payload: frame[:payload].bytesize).inspect
|
||||
when :headers
|
||||
"\e[33m#{frame.inspect}\e[0m"
|
||||
else
|
||||
frame.inspect
|
||||
end
|
||||
@ -189,7 +187,7 @@ module HTTPX
|
||||
|
||||
def on_frame_received(frame)
|
||||
log(level: 2, label: "#{frame[:stream]}: ") { "frame was received!" }
|
||||
log(level: 2, label: "#{frame[:stream]}: ") do
|
||||
log(level: 2, label: "#{frame[:stream]}: ", color: :magenta) do
|
||||
case frame[:type]
|
||||
when :data
|
||||
frame.merge(payload: frame[:payload].bytesize).inspect
|
||||
|
@ -2,10 +2,22 @@
|
||||
|
||||
module HTTPX
|
||||
module Loggable
|
||||
COLORS = {
|
||||
black: 30,
|
||||
red: 31,
|
||||
green: 32,
|
||||
yellow: 33,
|
||||
blue: 34,
|
||||
magenta: 35,
|
||||
cyan: 36,
|
||||
white: 37,
|
||||
}.freeze
|
||||
|
||||
def log(level: @options.debug_level, label: "", color: nil, &msg)
|
||||
return unless @options.debug
|
||||
return unless @options.debug_level >= level
|
||||
message = (+label << msg.call << "\n")
|
||||
message = "\e[#{COLORS[color]}m#{message}\e[0m" if color
|
||||
@options.debug << message
|
||||
end
|
||||
end
|
||||
|
Loading…
x
Reference in New Issue
Block a user