diff --git a/src/main/java/org/apache/sling/maven/slingstart/run/LauncherCallable.java b/src/main/java/org/apache/sling/maven/slingstart/run/LauncherCallable.java
index b1c132e..33f4429 100644
--- a/src/main/java/org/apache/sling/maven/slingstart/run/LauncherCallable.java
+++ b/src/main/java/org/apache/sling/maven/slingstart/run/LauncherCallable.java
@@ -32,6 +32,7 @@
 
 import org.apache.commons.io.IOUtils;
 import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.shared.utils.StringUtils;
 import org.apache.sling.maven.slingstart.launcher.Main;
 
 /**
@@ -179,10 +180,18 @@
         builder.command(args.toArray(new String[args.size()]));
         builder.directory(this.configuration.getFolder());
         builder.redirectErrorStream(true);
-        builder.redirectOutput(Redirect.INHERIT);
-        builder.redirectError(Redirect.INHERIT);
-
         logger.info("Starting Launchpad " + this.configuration.getId() +  "...");
+        String stdOutFile = this.configuration.getStdOutFile();
+        if (StringUtils.isNotBlank(stdOutFile)) {
+            File absoluteStdOutFile = new File(builder.directory(), stdOutFile);
+            // make sure to create the parent directories (if they do not exist yet)
+            absoluteStdOutFile.getParentFile().mkdirs();
+            builder.redirectOutput(absoluteStdOutFile);
+            logger.info("Redirecting stdout and stderr to " + absoluteStdOutFile);
+        } else {
+            builder.redirectOutput(Redirect.INHERIT);
+        }
+
         logger.debug("Launchpad cmd: " + builder.command());
         logger.debug("Launchpad dir: " + builder.directory());
 
diff --git a/src/main/java/org/apache/sling/maven/slingstart/run/ServerConfiguration.java b/src/main/java/org/apache/sling/maven/slingstart/run/ServerConfiguration.java
index 8aa00fc..2d0502a 100644
--- a/src/main/java/org/apache/sling/maven/slingstart/run/ServerConfiguration.java
+++ b/src/main/java/org/apache/sling/maven/slingstart/run/ServerConfiguration.java
@@ -64,6 +64,13 @@
 
     /** The folder to use. */
     private File folder;
+    
+    /**
+     * The relative filename of the file which receives both the standard output (stdout) and standard error (stderr) of the server processes. 
+     * If null or empty string the server process inherits stdout from the parent process (i.e. the Maven process).
+     * The given filename must be relative to the working directory of the according server.
+     */
+    private String stdOutFile;
 
     /**
      * Get the instance id
@@ -168,6 +175,14 @@
         this.controlPort = controlPort;
     }
 
+    public String getStdOutFile() {
+        return stdOutFile;
+    }
+
+    public void setStdOutFile(String stdOutFile) {
+        this.stdOutFile = stdOutFile;
+    }
+
     /**
      * Get the server
      * @return The server
@@ -189,7 +204,7 @@
         copy.setInstances(1);
         copy.setFolder(this.getFolder());
         copy.setControlPort(this.getControlPort());
-
+        copy.setStdOutFile(this.stdOutFile);
         return copy;
     }
 
@@ -199,6 +214,6 @@
                 + ", port=" + port + ", controlPort=" + controlPort
                 + ", contextPath=" + contextPath
                 + ", vmOpts=" + vmOpts + ", vmDebugOpts=" + getVmDebugOpts(null) + ", opts=" + opts + ", instances="
-                + instances + ", folder=" + folder + "]";
+                + instances + ", folder=" + folder + ", stdout=" + stdOutFile + "]";
     }
 }
