[466403] Exceptions while writing to the log file should not be logged (more than once)

https://bugs.eclipse.org/bugs/show_bug.cgi?id=466403
diff --git a/plugins/org.eclipse.oomph.setup.core/src/org/eclipse/oomph/setup/internal/core/SetupTaskPerformer.java b/plugins/org.eclipse.oomph.setup.core/src/org/eclipse/oomph/setup/internal/core/SetupTaskPerformer.java
index 6eb162f..2c80174 100644
--- a/plugins/org.eclipse.oomph.setup.core/src/org/eclipse/oomph/setup/internal/core/SetupTaskPerformer.java
+++ b/plugins/org.eclipse.oomph.setup.core/src/org/eclipse/oomph/setup/internal/core/SetupTaskPerformer.java
@@ -202,6 +202,8 @@
 
   private PrintStream logStream;
 
+  private boolean logStreamError;
+
   private ProgressLogFilter logFilter = new ProgressLogFilter();
 
   private IProgressMonitor progressMonitor;
@@ -1669,15 +1671,19 @@
       return;
     }
 
-    try
+    if (!logStreamError)
     {
-      PrintStream logStream = getLogStream(true);
-      logStream.println("[" + DATE_TIME.format(new Date()) + "] " + line);
-      logStream.flush();
-    }
-    catch (Exception ex)
-    {
-      SetupCorePlugin.INSTANCE.log(ex);
+      try
+      {
+        PrintStream logStream = getLogStream(true);
+        logStream.println("[" + DATE_TIME.format(new Date()) + "] " + line);
+        logStream.flush();
+      }
+      catch (Exception ex)
+      {
+        SetupCorePlugin.INSTANCE.log(ex, IStatus.WARNING);
+        logStreamError = true;
+      }
     }
 
     progress.log(line, filter, severity);