File tree Expand file tree Collapse file tree 1 file changed +12
-3
lines changed Expand file tree Collapse file tree 1 file changed +12
-3
lines changed Original file line number Diff line number Diff line change @@ -53,20 +53,29 @@ class LogStash::Outputs::Tcp < LogStash::Outputs::Base
5353
5454 ##
5555 # @param socket [Socket]
56- # @param logger_context [#log_warn&#log_error]
56+ # @param logger_context [#log_warn&#log_error&#logger ]
5757 class Client
5858 def initialize ( socket , logger_context )
5959 @socket = socket
60+ @peer_info = socket . peer
6061 @logger_context = logger_context
6162 @queue = Queue . new
6263 end
6364
6465 def run
6566 loop do
6667 begin
67- @socket . write ( @queue . pop )
68+ payload = @queue . pop
69+
70+ @logger_context . logger . trace ( "transmitting #{ payload . bytesize } bytes" , socket : @peer_info ) if @logger_context . logger . trace? && payload && !payload . empty?
71+ while payload && !payload . empty?
72+ written_bytes_size = @socket . write ( payload )
73+ payload = payload . byteslice ( written_bytes_size ..-1 )
74+ @logger_context . logger . log_trace ( ">transmitted #{ written_bytes_size } bytes; #{ payload . bytesize } bytes remain" , socket : @socket &.peer ) if @logger_context . logger . trace?
75+ sleep 0.1 unless payload . empty?
76+ end
6877 rescue => e
69- @logger_context . log_warn ( "tcp output exception: socket write failed" , e , :socket => @socket &. to_s )
78+ @logger_context . log_warn ( "tcp output exception: socket write failed" , e , :socket => @peer_info )
7079 break
7180 end
7281 end
You can’t perform that action at this time.
0 commit comments