Redirect language server logs to file, for all language servers

This is because vscode/atom clients do not like verbose log output
(JavaScript too slow compared to java?) and drop the connection to
the server.
This commit is contained in:
Kris De Volder
2017-11-17 15:18:42 -08:00
parent cf98184b35
commit ac1b3ae109
6 changed files with 14 additions and 13 deletions

View File

@@ -23,7 +23,7 @@ import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguage
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
LaunguageServerApp.start("boot-java", () -> {
LaunguageServerApp.start("boot-java-language-server", () -> {
SimpleLanguageServer server = new BootJavaLanguageServer(
BootJavaLanguageServerParams.createDefault()
);

View File

@@ -24,7 +24,7 @@ import org.springframework.ide.vscode.commons.languageserver.LaunguageServerApp;
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
LaunguageServerApp.start("boot-properties",
LaunguageServerApp.start("boot-properties-language-server",
() -> new BootPropertiesLanguageServer(BootPropertiesLanguageServerParams.createDefault()));
}

View File

@@ -20,7 +20,7 @@ import org.springframework.ide.vscode.commons.languageserver.LaunguageServerApp;
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
BoshCliConfig cliConfig = new BoshCliConfig();
LaunguageServerApp.start("bosh", () -> new BoshLanguageServer(
LaunguageServerApp.start("bosh-language-server", () -> new BoshLanguageServer(
cliConfig,
new BoshCommandCloudConfigProvider(cliConfig),
new BoshCommandStemcellsProvider(cliConfig),

View File

@@ -11,6 +11,7 @@
package org.springframework.ide.vscode.commons.languageserver;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -62,6 +63,14 @@ public abstract class LaunguageServerApp {
public static void start(String name, Provider<SimpleLanguageServer> languageServerFactory) throws IOException, InterruptedException {
System.setProperty(STS4_LANGUAGESERVER_NAME, name); //makes it easy to recognize language server processes.
File logfile = null;
if (System.getProperty("org.slf4j.simpleLogger.logFile") == null) {
logfile = File.createTempFile(name, ".log");
System.setProperty("org.slf4j.simpleLogger.logFile", logfile.toString());
} else {
logfile = new File(System.getProperty("org.slf4j.simpleLogger.logFile"));
}
System.err.println("Redirecting log output to: "+logfile);
LaunguageServerApp app = new LaunguageServerApp() {
@Override
protected SimpleLanguageServer createServer() {

View File

@@ -20,6 +20,6 @@ public class Main {
private static final YamlCompletionEngineOptions OPTIONS = YamlCompletionEngineOptions.DEFAULT;
public static void main(String[] args) throws IOException, InterruptedException {
LaunguageServerApp.start("concourse", () -> new ConcourseLanguageServer(OPTIONS));
LaunguageServerApp.start("concourse-language-server", () -> new ConcourseLanguageServer(OPTIONS));
}
}

View File

@@ -20,15 +20,7 @@ public class Main {
SimpleLanguageServer server = new ManifestYamlLanguageServer();
public static void main(String[] args) throws IOException, InterruptedException {
File logfile = null;
if (System.getProperty("org.slf4j.simpleLogger.logFile") == null) {
logfile = File.createTempFile("manifest-yaml-language-server", ".log");
System.setProperty("org.slf4j.simpleLogger.logFile", logfile.toString());
} else {
logfile = new File(System.getProperty("org.slf4j.simpleLogger.logFile"));
}
System.err.println("Redirecting log output to: "+logfile);
LaunguageServerApp.start("cloudfoundry", ManifestYamlLanguageServer::new);
LaunguageServerApp.start("manifest-yaml-language-server", ManifestYamlLanguageServer::new);
}
}