diff --git a/src/plugins/e-acsl/scripts/e-acsl-gcc.sh b/src/plugins/e-acsl/scripts/e-acsl-gcc.sh
index e26996287dcd8c17584a2b09a011e2183067d7f1..147ed1d600fa59f97d2438e2be24aa47cea79672 100755
--- a/src/plugins/e-acsl/scripts/e-acsl-gcc.sh
+++ b/src/plugins/e-acsl/scripts/e-acsl-gcc.sh
@@ -46,9 +46,9 @@ check_tool() {
 
 # Getopt options
 LONGOPTIONS="help,compile,compile-only,print,debug:,ocode:,oexec:,verbose:, \
-  frama-c-only,extra-cpp-args,rtl,frama-c-stdlib,full-mmodel,gmp,quiet,
+  frama-c-only,extra-cpp-args,rtl,frama-c-stdlib,full-mmodel,gmp,quiet,logfile:,
   ld-flags:,cpp-flags:"
-SHORTOPTIONS="h,c,C,p,d:,o:,O:,v:,f,E:,R,L,M,l:,e:,g,q"
+SHORTOPTIONS="h,c,C,p,d:,o:,O:,v:,f,E:,R,L,M,l:,e:,g,q,s:"
 # Prefix for an error message due to wrong arguments
 ERROR="ERROR parsing arguments:"
 
@@ -165,6 +165,8 @@ manpage() {
   echo "      pass the specified flags to the pre-processor (compile-time)"
   echo "  -q, --quiet"
   echo "      suppress any output except for errors and warnings"
+  echo "  -s, --logfile <FILE>"
+  echo "      redirect all output to a given log file"
   echo ""
   echo "EXAMPLES:"
   echo "  # Instrument foo.c and output the instrumented code to a.out.frama.c"
@@ -213,6 +215,13 @@ do
       OPTION_DEBUG="-debug 0"
       OPTION_VERBOSE="-verbose 0"
     ;;
+    # Redirect all output to a given file
+    --logfile|-s)
+        shift;
+        exec > $1
+        exec 2> $1
+        shift;
+    ;;
     # Do compile instrumented code
     --compile|-c)
       shift;