diff --git a/bin/ModulesInformationV2.py b/bin/ModulesInformationV2.py
index f3c7cf46..150e0397 100755
--- a/bin/ModulesInformationV2.py
+++ b/bin/ModulesInformationV2.py
@@ -24,7 +24,7 @@ command_search_pid = "ps a -o pid,cmd | grep {}"
 command_search_name = "ps a -o pid,cmd | grep {}"
 command_restart_module = "screen -S \"Script\" -X screen -t \"{}\" bash -c \"./{}.py; read x\""
 
-printarrayGlob = [None]*14
+printarrayLog = [None]*14
 lastTimeKillCommand = {}
 
 # Used to pass information through scenes
@@ -505,8 +505,7 @@ def clearRedisModuleInfo():
     for k in server.keys("MODULE_*"):
         server.delete(k)
     inst_time = datetime.datetime.fromtimestamp(int(time.time()))
-    printarrayGlob.insert(0, ([str(inst_time).split(' ')[1], "*", "-", "Cleared redis module info"], 0))
-    printarrayGlob.pop()
+    log(([str(inst_time).split(' ')[1], "*", "-", "Cleared redis module info"], 0))
 
 def cleanRedis():
     for k in server.keys("MODULE_TYPE_*"):
@@ -524,15 +523,12 @@ def cleanRedis():
                     #print flag_pid_valid, 'cleaning', pid, 'in', k
                     server.srem(k, pid)
                     inst_time = datetime.datetime.fromtimestamp(int(time.time()))
-                    printarrayGlob.insert(0, ([str(inst_time).split(' ')[1], moduleName, pid, "Cleared invalid pid in " + k], 0))
-                    printarrayGlob.pop()
+                    log(([str(inst_time).split(' ')[1], moduleName, pid, "Cleared invalid pid in " + k], 0))
 
             #Error due to resize, interrupted sys call
             except IOError as e:
                 inst_time = datetime.datetime.fromtimestamp(int(time.time()))
-                printarrayGlob.insert(0, ([str(inst_time).split(' ')[1], " - ", " - ", "Cleaning fail due to resize."], 0))
-                printarrayGlob.pop()
-                pass
+                log(([str(inst_time).split(' ')[1], " - ", " - ", "Cleaning fail due to resize."], 0))
 
 
 def restart_module(module, count=1):
@@ -540,9 +536,7 @@ def restart_module(module, count=1):
         p2 = Popen([command_restart_module.format(module, module)], stdin=PIPE, stdout=PIPE, bufsize=1, shell=True)
         time.sleep(0.2)
     inst_time = datetime.datetime.fromtimestamp(int(time.time()))
-    printarrayGlob.insert(0, ([str(inst_time).split(' ')[1], module, "?", "Restarted " + str(count) + "x"], 0))
-    printarrayGlob.pop()
-
+    log(([str(inst_time).split(' ')[1], module, "?", "Restarted " + str(count) + "x"], 0))
 
 
 def kill_module(module, pid):
@@ -551,8 +545,7 @@ def kill_module(module, pid):
     if pid is None:
         #print 'pid was None'
         inst_time = datetime.datetime.fromtimestamp(int(time.time()))
-        printarrayGlob.insert(0, ([str(inst_time).split(' ')[1], module, pid, "PID was None"], 0))
-        printarrayGlob.pop()
+        log(([str(inst_time).split(' ')[1], module, pid, "PID was None"], 0))
         pid = getPid(module)
     else: #Verify that the pid is at least in redis
         if server.exists("MODULE_"+module+"_"+str(pid)) == 0:
@@ -566,42 +559,36 @@ def kill_module(module, pid):
         except Exception as e:
             #print pid, 'already killed'
             inst_time = datetime.datetime.fromtimestamp(int(time.time()))
-            printarrayGlob.insert(0, ([str(inst_time).split(' ')[1], module, pid, "Already killed"], 0))
-            printarrayGlob.pop()
+            log(([str(inst_time).split(' ')[1], module, pid, "Already killed"], 0))
             return
         time.sleep(0.2)
         if not p.is_running():
             #print module, 'has been killed'
             #print 'restarting', module, '...'
             inst_time = datetime.datetime.fromtimestamp(int(time.time()))
-            printarrayGlob.insert(0, ([str(inst_time).split(' ')[1], module, pid, "Killed"], 0))
-            printarrayGlob.pop()
+            log(([str(inst_time).split(' ')[1], module, pid, "Killed"], 0))
             #restart_module(module)
 
         else:
             #print 'killing failed, retrying...'
             inst_time = datetime.datetime.fromtimestamp(int(time.time()))
-            printarrayGlob.insert(0, ([str(inst_time).split(' ')[1], module, pid, "Killing #1 failed."], 0))
-            printarrayGlob.pop()
+            log(([str(inst_time).split(' ')[1], module, pid, "Killing #1 failed."], 0))
 
             p.terminate()
             if not p.is_running():
                 #print module, 'has been killed'
                 #print 'restarting', module, '...'
                 inst_time = datetime.datetime.fromtimestamp(int(time.time()))
-                printarrayGlob.insert(0, ([str(inst_time).split(' ')[1], module, pid, "Killed"], 0))
-                printarrayGlob.pop()
+                log(([str(inst_time).split(' ')[1], module, pid, "Killed"], 0))
                 #restart_module(module)
             else:
                 #print 'killing failed!'
                 inst_time = datetime.datetime.fromtimestamp(int(time.time()))
-                printarrayGlob.insert(0, ([str(inst_time).split(' ')[1], module, pid, "Killing failed!"], 0))
-                printarrayGlob.pop()
+                log(([str(inst_time).split(' ')[1], module, pid, "Killing failed!"], 0))
     else:
         #print 'Module does not exist'
         inst_time = datetime.datetime.fromtimestamp(int(time.time()))
-        printarrayGlob.insert(0, ([str(inst_time).split(' ')[1], module, pid, "Killing failed, module not found"], 0))
-        printarrayGlob.pop()
+        log(([str(inst_time).split(' ')[1], module, pid, "Killing failed, module not found"], 0))
     cleanRedis()
 
 
@@ -640,7 +627,7 @@ def fetchQueueData():
                     if int(card) > 0:
                         # Queue need to be killed
                         if int((datetime.datetime.now() - startTime_readable).total_seconds()) > args.treshold:
-                            #log = open(log_filename, 'a')
+                            log(([time.time(), queue, "-", "ST:"+timestamp+" PT:"+time.time()-timestamp], 0), True)
                             #log.write(json.dumps([queue, card, str(startTime_readable), str(processed_time_readable), path]) + "\n")
                             try:
                                 last_kill_try = time.time() - lastTimeKillCommand[moduleNum]
@@ -730,6 +717,13 @@ def format_string(tab, padding_row):
         printstring.append( (text, the_pid) )
     return printstring
 
+def log(data, write_on_disk=False):
+    printarrayLog.insert(0, data)
+    printarrayLog.pop()
+    if write_on_disk:
+        with open(log_filename, 'a') as log:
+            log.write(json.dumps(data[0]) + "\n")
+
 '''
 END MANAGE
 '''
@@ -760,7 +754,7 @@ def demo(screen):
             cleanRedis()
             for key, val in fetchQueueData().iteritems(): #fetch data and put it into the tables
                 TABLES[key] = val
-            TABLES["logs"] = format_string(printarrayGlob, TABLES_PADDING["logs"])
+            TABLES["logs"] = format_string(printarrayLog, TABLES_PADDING["logs"])
 
             #refresh dashboad only if the scene is active (no value selected)
             if current_selected_value == 0: