package co.forsaken.projectindigo.utils;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.logging.Level;
import java.util.logging.Logger;
public class InputStreamLogger extends Thread {
private final InputStream is;
private InputStreamLogger(InputStream from) {
is = from;
}
@Override
public void run() {
byte buffer[] = new byte[4096];
String logBuffer = "";
int newLineIndex;
int nullIndex;
try {
while (is.read(buffer) > 0) {
logBuffer += new String(buffer).replace("\r\n", "\n");
nullIndex = logBuffer.indexOf(0);
if (nullIndex != -1) {
logBuffer = logBuffer.substring(0, nullIndex);
}
while ((newLineIndex = logBuffer.indexOf("\n")) != -1) {
logBuffer = logBuffer.substring(newLineIndex + 1);
}
Arrays.fill(buffer, (byte) 0);
}
} catch (IOException e) {
Logger.getLogger("launcher").log(Level.SEVERE, e.getMessage());
e.printStackTrace();
}
}
public static void start(InputStream from) {
InputStreamLogger processStreamRedirect = new InputStreamLogger(from);
processStreamRedirect.start();
}
}