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);