1717
1818package com .rabbitmq .tools ;
1919
20- import java .io .*;
20+ import java .io .BufferedOutputStream ;
21+ import java .io .DataInputStream ;
22+ import java .io .DataOutputStream ;
23+ import java .io .EOFException ;
24+ import java .io .IOException ;
25+ import java .io .OutputStream ;
26+ import java .io .PrintStream ;
2127import java .net .ServerSocket ;
2228import java .net .Socket ;
2329import java .util .HashMap ;
24- import java .util .concurrent .*;
30+ import java .util .concurrent .ArrayBlockingQueue ;
31+ import java .util .concurrent .BlockingQueue ;
2532
2633import com .rabbitmq .client .AMQP ;
2734import com .rabbitmq .client .impl .AMQCommand ;
@@ -62,11 +69,15 @@ private static boolean property(String property) {
6269 final static int MAX_TIME_BETWEEN_FLUSHES = 1000 ;
6370 final static Object FLUSH = new Object ();
6471
65- private static class AsyncLogger extends Thread {
72+ public interface Logger {
73+ void log (String msg );
74+ }
75+
76+ private static class AsyncLogger extends Thread implements Logger {
6677 final PrintStream ps ;
6778 final BlockingQueue <Object > queue = new ArrayBlockingQueue <Object >(LOG_QUEUE_SIZE , true );
68- AsyncLogger (PrintStream ps ) {
69- this .ps = new PrintStream (new BufferedOutputStream (ps , BUFFER_SIZE ), false );
79+ AsyncLogger (OutputStream os ) {
80+ this .ps = new PrintStream (new BufferedOutputStream (os , BUFFER_SIZE ), false );
7081 start ();
7182
7283 new Thread () {
@@ -82,7 +93,8 @@ private static class AsyncLogger extends Thread {
8293 }.start ();
8394 }
8495
85- @ Override public void run () {
96+ @ Override
97+ public void run () {
8698 try {
8799 while (true ) {
88100 Object message = queue .take ();
@@ -93,7 +105,8 @@ private static class AsyncLogger extends Thread {
93105 }
94106 }
95107
96- void log (String message ) {
108+ @ Override
109+ public void log (String message ) {
97110 try {
98111 queue .put (message );
99112 } catch (InterruptedException ex ) {
@@ -123,7 +136,7 @@ public static void main(String[] args) {
123136 try {
124137 ServerSocket server = new ServerSocket (listenPort );
125138 int counter = 0 ;
126- AsyncLogger logger = new AsyncLogger (System .out );
139+ Logger logger = new AsyncLogger (System .out );
127140 while (true ) {
128141 Socket conn = server .accept ();
129142 new Tracer (conn , counter ++, connectHost , connectPort , logger );
@@ -148,9 +161,9 @@ public static void main(String[] args) {
148161
149162 public DataOutputStream oos ;
150163
151- public AsyncLogger logger ;
164+ public Logger logger ;
152165
153- public Tracer (Socket sock , int id , String host , int port , AsyncLogger logger ) throws IOException {
166+ public Tracer (Socket sock , int id , String host , int port , Logger logger ) throws IOException {
154167 this .inSock = sock ;
155168 this .outSock = new Socket (host , port );
156169 this .id = id ;
@@ -194,8 +207,8 @@ public void run() {
194207 }
195208
196209 public void log (String message ) {
197- logger . log ( "" + System . currentTimeMillis () + ": conn#"
198- + id + " " + message );
210+ StringBuilder sb = new StringBuilder ();
211+ logger . log ( sb . append ( System . currentTimeMillis ()). append ( ": conn#" ). append ( id ). append ( ' ' ). append ( message ). toString () );
199212 }
200213
201214 public void logException (Exception e ) {
0 commit comments