diff --git a/launch.py b/launch.py
index 383c2e45bca5945455081cada2e78ec4b61ca538..a46d174df1d08ef216e84f26663b8fa6a1006e12 100755
--- a/launch.py
+++ b/launch.py
@@ -931,8 +931,12 @@ if __name__ == '__main__':
             path_log = os.path.join(os.getcwd(), 'launch_scheduler_log.txt')
         elif not os.path.isabs(options.logfile):
             path_log = os.path.join(os.getcwd(), options.logfile)
-        # log to file and do not print messages
-        output = Logger(open(path_log, 'w'), True)
+        # log to file and do not print messages, but in crontab mode, append!
+        if os.path.exists(path_log) and options.crontab:
+            mode = 'a'
+        else:
+            mode = 'w'
+        output = Logger(open(path_log, mode), True)
         sys.stdout = output
     else:
         path_log = None