Less excessive logging and other logging related cleanups

This commit is contained in:
Kris De Volder
2016-11-23 16:06:43 -08:00
parent 1b14ec7370
commit 1297429d5a
2 changed files with 48 additions and 55 deletions

View File

@@ -87,7 +87,6 @@ public abstract class LaunguageServerApp {
Connection connection = null;
try {
LoggingFormat.startLogging();
connection = connectToNode();
run(connection);
@@ -110,17 +109,8 @@ public abstract class LaunguageServerApp {
InputStream in = socket.getInputStream();
OutputStream out = socket.getOutputStream();
OutputStream intercept = new OutputStream() {
@Override
public void write(int b) throws IOException {
out.write(b);
}
};
LOG.info("Connected to parent using socket on port " + port);
return new Connection(in, intercept, socket);
return new Connection(in, out, socket);
}
else {
InputStream in = System.in;
@@ -147,7 +137,6 @@ public abstract class LaunguageServerApp {
Function<MessageConsumer, MessageConsumer> wrapper = (MessageConsumer consumer) -> {
return (msg) -> {
try {
LOG.info(""+msg);
consumer.consume(msg);
} catch (UnsupportedOperationException e) {
//log a warning and ignore. We are getting some messages from vsCode the server doesn't know about

View File

@@ -5,63 +5,67 @@ import java.io.PrintWriter;
import java.io.StringWriter;
import java.time.Instant;
import java.util.StringJoiner;
import java.util.logging.*;
import java.util.logging.Formatter;
import java.util.logging.Handler;
import java.util.logging.LogRecord;
import java.util.logging.Logger;
public class LoggingFormat extends Formatter {
public static ThreadLocal<Integer> request = new ThreadLocal<>();
public static ThreadLocal<Integer> request = new ThreadLocal<>();
@Override
public String format(LogRecord record) {
StringJoiner joiner = new StringJoiner("\t");
@Override
public String format(LogRecord record) {
StringJoiner joiner = new StringJoiner("\t");
joiner.add(record.getLevel().getName());
joiner.add(requestAsString());
joiner.add(Thread.currentThread().getName());
joiner.add(Instant.ofEpochMilli(record.getMillis()).toString());
// joiner.add(record.getLoggerName());
joiner.add(record.getSourceClassName() + "#" + record.getSourceMethodName());
joiner.add(record.getMessage());
joiner.add(record.getLevel().getName());
joiner.add(requestAsString());
joiner.add(Thread.currentThread().getName());
joiner.add(Instant.ofEpochMilli(record.getMillis()).toString());
// joiner.add(record.getLoggerName());
joiner.add(record.getSourceClassName() + "#" + record.getSourceMethodName());
joiner.add(record.getMessage());
String result = joiner.toString() + "\n";
String result = joiner.toString() + "\n";
Throwable thrown = record.getThrown();
Throwable thrown = record.getThrown();
if (thrown != null) {
StringWriter stackTrace = new StringWriter();
PrintWriter print = new PrintWriter(stackTrace);
if (thrown != null) {
StringWriter stackTrace = new StringWriter();
PrintWriter print = new PrintWriter(stackTrace);
thrown.printStackTrace(print);
print.flush();
thrown.printStackTrace(print);
print.flush();
result = result + stackTrace + "\n";
}
result = result + stackTrace + "\n";
}
return result;
}
return result;
}
private CharSequence requestAsString() {
Integer i = request.get();
private CharSequence requestAsString() {
Integer i = request.get();
if (i == null)
return "?";
else
return Integer.toString(i);
}
if (i == null)
return "?";
else
return Integer.toString(i);
}
private static boolean started = false;
private static boolean started = false;
public static void startLogging() throws IOException {
if (!started) {
started = true;
public static void startLogging() throws IOException {
if (!started) {
started = true;
Logger root = Logger.getLogger("");
Logger root = Logger.getLogger("");
// for (Handler h : ImmutableList.copyOf(root.getHandlers())) {
// root.removeHandler(h);
// }
// FileHandler file = new FileHandler("sts4-extension.%g.log", 100_000, 1, false);
// root.addHandler(file);
FileHandler file = new FileHandler("javac-services.%g.log", 100_000, 1, false);
root.addHandler(file);
for (Handler h : root.getHandlers())
h.setFormatter(new LoggingFormat());
}
}
for (Handler h : root.getHandlers())
h.setFormatter(new LoggingFormat());
}
}
}