Improve SessionLogFileWriter to create a non-existing folder
Change-Id: I8afbf9489f6e8b5d425240edc04bd1c20969d7f5
Signed-off-by: Dirk Fauth <dirk.fauth@de.bosch.com>
diff --git a/plugins/org.eclipse.app4mc.util.sessionlog.file/src/org/eclipse/app4mc/util/sessionlog/file/SessionLogFileWriter.java b/plugins/org.eclipse.app4mc.util.sessionlog.file/src/org/eclipse/app4mc/util/sessionlog/file/SessionLogFileWriter.java
index bae1464..e4ae657 100644
--- a/plugins/org.eclipse.app4mc.util.sessionlog.file/src/org/eclipse/app4mc/util/sessionlog/file/SessionLogFileWriter.java
+++ b/plugins/org.eclipse.app4mc.util.sessionlog.file/src/org/eclipse/app4mc/util/sessionlog/file/SessionLogFileWriter.java
@@ -18,6 +18,9 @@
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
import java.util.List;
import org.eclipse.app4mc.util.sessionlog.SessionLogEntry;
@@ -40,6 +43,17 @@
@Override
public void write(File sessionLogFile, List<SessionLogEntry> log) {
+ Path parentPath = Paths.get(sessionLogFile.getAbsolutePath()).getParent();
+ if (!Files.exists(parentPath)) {
+ try {
+ Files.createDirectories(parentPath);
+ } catch (IOException e) {
+ if (this.logger != null) {
+ this.logger.error("Failed to create the output folder for the session log file", e);
+ }
+ }
+ }
+
try (BufferedWriter writer = new BufferedWriter(new FileWriter(sessionLogFile))) {
for (SessionLogEntry logEntry : log) {
writer.append(logEntry.message);