Improve logging.
[sonitus.git] / src / main / java / net / pterodactylus / sonitus / data / Pipeline.java
index 45d20bf..ab6500e 100644 (file)
@@ -167,13 +167,15 @@ public class Pipeline implements Iterable<ControlledComponent> {
                        }
                }
                for (Connection connection : connections) {
-                       logger.info(String.format("Starting Connection from %s to %s.", connection.source.name(), FluentIterable.from(connection.sinks).transform(new Function<Sink, String>() {
+                       String threadName = String.format("%s → %s.", connection.source.name(), FluentIterable.from(connection.sinks).transform(new Function<Sink, String>() {
+
                                @Override
                                public String apply(Sink sink) {
                                        return sink.name();
                                }
-                       })));
-                       new Thread(connection).start();
+                       }));
+                       logger.info(String.format("Starting Thread: %s", threadName));
+                       new Thread(connection, threadName).start();
                }
        }
 
@@ -347,7 +349,7 @@ public class Pipeline implements Iterable<ControlledComponent> {
                public Connection(Source source, Collection<Sink> sinks) {
                        this.source = source;
                        this.sinks = sinks;
-                       if (sinks.size() == 1) {
+                       if (sinks.size() < 2) {
                                executorService = MoreExecutors.sameThreadExecutor();
                        } else {
                                executorService = Executors.newCachedThreadPool();
@@ -398,11 +400,11 @@ public class Pipeline implements Iterable<ControlledComponent> {
                                try {
                                        final byte[] buffer;
                                        try {
-                                               logger.finest(String.format("Getting %d bytes from %s...", 4096, source));
+                                               logger.finest(String.format("Getting %d bytes from %s...", 4096, source.name()));
                                                buffer = source.get(4096);
-                                               logger.finest(String.format("Got %d bytes from %s.", buffer.length, source));
+                                               logger.finest(String.format("Got %d bytes from %s.", buffer.length, source.name()));
                                        } catch (IOException ioe1) {
-                                               throw new IOException(String.format("I/O error while reading from %s.", source), ioe1);
+                                               throw new IOException(String.format("I/O error while reading from %s.", source.name()), ioe1);
                                        }
                                        List<Future<Void>> futures = executorService.invokeAll(FluentIterable.from(sinks).transform(new Function<Sink, Callable<Void>>() {
 
@@ -413,11 +415,11 @@ public class Pipeline implements Iterable<ControlledComponent> {
                                                                @Override
                                                                public Void call() throws Exception {
                                                                        try {
-                                                                               logger.finest(String.format("Sending %d bytes to %s.", buffer.length, sink));
+                                                                               logger.finest(String.format("Sending %d bytes to %s.", buffer.length, sink.name()));
                                                                                sink.process(buffer);
-                                                                               logger.finest(String.format("Sent %d bytes to %s.", buffer.length, sink));
+                                                                               logger.finest(String.format("Sent %d bytes to %s.", buffer.length, sink.name()));
                                                                        } catch (IOException ioe1) {
-                                                                               throw new IOException(String.format("I/O error while writing to %s", sink), ioe1);
+                                                                               throw new IOException(String.format("I/O error while writing to %s", sink.name()), ioe1);
                                                                        }
                                                                        return null;
                                                                }