Handle log file not found case

This commit is contained in:
BoykoAlex
2021-08-24 15:52:17 -04:00
parent 478eabb6f1
commit 5e6b3f10ce

View File

@@ -13,25 +13,27 @@ package org.springframework.ide.vscode.commons.util;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;
public class LogRedirect {
public static void bootRedirectToFile(String name) throws IOException {
public static void bootRedirectToFile(String name) {
String logfilePath = System.getProperty("sts.log.file");
if (StringUtil.hasText(logfilePath)) {
PrintStream logFile = logFileStream(logfilePath);
System.setErr(logFile);
try {
PrintStream logFile = logFileStream(logfilePath);
System.setErr(logFile);
} catch (FileNotFoundException e) {
System.err.println(e);
System.err.println("Log file '" + logfilePath + "' cannot be found. Ensure that all folders in the path exist!");
System.setErr(switchOffLogging());
}
}
}
private static PrintStream logFileStream(String logfilePath) throws FileNotFoundException {
if (logfilePath.equals("/dev/null")) {
System.err.println("Disabling server log output. No more output will be sent after this.");
//redirect to a file called "/dev/null" works fine in Unix, but we also want this
// to work on Mac and Windows. So we create our own '/dev/null' stream
return new PrintStream(new NullOutputStream());
return switchOffLogging();
} else {
System.err.println("Redirecting log output to: "+logfilePath);
File logfile = new File(logfilePath);
@@ -39,13 +41,12 @@ public class LogRedirect {
return logFile;
}
}
public static void redirectToFile(String name) throws IOException {
String logfilePath = System.getProperty("sts.log.file");
if (StringUtil.hasText(logfilePath)) {
PrintStream logFile = logFileStream(logfilePath);
System.setErr(logFile);
}
}
private static PrintStream switchOffLogging() {
System.err.println("Disabling server log output. No more output will be sent after this.");
//redirect to a file called "/dev/null" works fine in Unix, but we also want this
// to work on Mac and Windows. So we create our own '/dev/null' stream
return new PrintStream(new NullOutputStream());
}
}