Handle log file not found case
This commit is contained in:
@@ -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());
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user