Second attempt to redirect log output to file

First attempt was flawed because some loggers can get instantiated
before sysem property is set.
This commit is contained in:
Kris De Volder
2017-11-17 15:49:00 -08:00
parent b95b69db49
commit cd2ab7de28
7 changed files with 34 additions and 15 deletions

View File

@@ -14,6 +14,7 @@ import java.io.IOException;
import org.springframework.ide.vscode.commons.languageserver.LaunguageServerApp;
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
import org.springframework.ide.vscode.commons.util.Log;
/**
* Starts up Language Server process
@@ -23,7 +24,9 @@ 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-language-server", () -> {
String serverName = "boot-java-language-server";
Log.redirectToFile(serverName);
LaunguageServerApp.start(serverName, () -> {
SimpleLanguageServer server = new BootJavaLanguageServer(
BootJavaLanguageServerParams.createDefault()
);

View File

@@ -13,6 +13,7 @@ package org.springframework.ide.vscode.boot;
import java.io.IOException;
import org.springframework.ide.vscode.commons.languageserver.LaunguageServerApp;
import org.springframework.ide.vscode.commons.util.Log;
/**
* Starts up Language Server process
@@ -24,7 +25,9 @@ import org.springframework.ide.vscode.commons.languageserver.LaunguageServerApp;
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
LaunguageServerApp.start("boot-properties-language-server",
String serverName = "boot-properties-language-server";
Log.redirectToFile(serverName);
LaunguageServerApp.start(serverName,
() -> new BootPropertiesLanguageServer(BootPropertiesLanguageServerParams.createDefault()));
}

View File

@@ -16,11 +16,14 @@ import org.springframework.ide.vscode.bosh.models.BoshCommandCloudConfigProvider
import org.springframework.ide.vscode.bosh.models.BoshCommandReleasesProvider;
import org.springframework.ide.vscode.bosh.models.BoshCommandStemcellsProvider;
import org.springframework.ide.vscode.commons.languageserver.LaunguageServerApp;
import org.springframework.ide.vscode.commons.util.Log;
public class Main {
public static void main(String[] args) throws IOException, InterruptedException {
String serverName = "bosh-language-server";
Log.redirectToFile(serverName);
BoshCliConfig cliConfig = new BoshCliConfig();
LaunguageServerApp.start("bosh-language-server", () -> new BoshLanguageServer(
LaunguageServerApp.start(serverName, () -> new BoshLanguageServer(
cliConfig,
new BoshCommandCloudConfigProvider(cliConfig),
new BoshCommandStemcellsProvider(cliConfig),

View File

@@ -11,7 +11,6 @@
package org.springframework.ide.vscode.commons.languageserver;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
@@ -63,14 +62,6 @@ 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

@@ -11,6 +11,9 @@
package org.springframework.ide.vscode.commons.util;
import java.io.File;
import java.io.IOException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -53,4 +56,15 @@ public class Log {
logger.warn(msg, e);
}
public static void redirectToFile(String name) throws IOException {
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);
}
}

View File

@@ -14,12 +14,15 @@ package org.springframework.ide.vscode.concourse;
import java.io.IOException;
import org.springframework.ide.vscode.commons.languageserver.LaunguageServerApp;
import org.springframework.ide.vscode.commons.util.Log;
import org.springframework.ide.vscode.commons.yaml.completion.YamlCompletionEngineOptions;
public class Main {
private static final YamlCompletionEngineOptions OPTIONS = YamlCompletionEngineOptions.DEFAULT;
public static void main(String[] args) throws IOException, InterruptedException {
LaunguageServerApp.start("concourse-language-server", () -> new ConcourseLanguageServer(OPTIONS));
String serverName = "concourse-language-server";
Log.redirectToFile(serverName);
LaunguageServerApp.start(serverName, () -> new ConcourseLanguageServer(OPTIONS));
}
}

View File

@@ -10,17 +10,19 @@
*******************************************************************************/
package org.springframework.ide.vscode.manifest.yaml;
import java.io.File;
import java.io.IOException;
import org.springframework.ide.vscode.commons.languageserver.LaunguageServerApp;
import org.springframework.ide.vscode.commons.languageserver.util.SimpleLanguageServer;
import org.springframework.ide.vscode.commons.util.Log;
public class Main {
SimpleLanguageServer server = new ManifestYamlLanguageServer();
public static void main(String[] args) throws IOException, InterruptedException {
LaunguageServerApp.start("manifest-yaml-language-server", ManifestYamlLanguageServer::new);
String serverName = "manifest-yaml-language-server";
Log.redirectToFile(serverName);
LaunguageServerApp.start(serverName, ManifestYamlLanguageServer::new);
}
}