diff --git a/scripts/HTN/Trees/Red/ConvoyUnit.xml b/scripts/HTN/Trees/Red/ConvoyUnit.xml
index 65ed14a46fb13bb104dfdba868e1e0780fe8fce9..4ade972af5cc9b0726b10a86b11390b30ae5d847 100644
--- a/scripts/HTN/Trees/Red/ConvoyUnit.xml
+++ b/scripts/HTN/Trees/Red/ConvoyUnit.xml
@@ -12,7 +12,8 @@
     <Import />
     <HTNNode AllowMsg="true" Name="start" Type="DEFAULT">
       <Parent>addReplanTriggers</Parent>
-      <Code IsFile="false">#from HTNBehaviors import SendEntityEventDelay
+      <Code IsFile="false">
+#from HTNBehaviors import SendEntityEventDelay
 #
 #printMessage("Convoy started", True)
 #
@@ -21,6 +22,13 @@
 #
 #borg.redUnitStatus[state.getCurrentUnitName()] = 0
 #
+
+# log data 
+if state.isCommander():
+    from HTNBehaviors import SendEntityEventDelay
+    from HTNBehaviors import ConvertToJavaList
+    SendEntityEventDelay(info.getMyAssignedName(), "GoalTracker_LogMsg", ["UnitLogger", "UNIT_NAME\tACTION\tDATA", ConvertToJavaList([ state.getCurrentUnitName(), "CONVOY_CREATED" "" ])], 0)
+
 </Code>
       <Import />
     </HTNNode>
@@ -72,6 +80,7 @@ SendEntityEventDelay(info.getMyAssignedName(), "GoalTracker_MoveToPoint", ["ASSE
 borg.delay=1.0
 
 borg.redUnitStatus[state.getCurrentUnitName()] = 0
+
 </Code>
           <Import />
         </HTNNode>
@@ -120,6 +129,13 @@ printMessage("Starting move: "+str(wps)+" Spd: "+str(randSpd), True)
 if _gt_activeNode.getVar("moveReason") == "CONVOY":
     #    borg.redUnitActivity[state.getCurrentUnitName()]="MOVE_TO_DEPLOYMENT_SITE"
     SetRedUnitActivity(state.getCurrentUnitName(), "MOVE_TO_DEPLOYMENT_SITE")
+
+# log data 
+if state.isCommander():
+    from HTNBehaviors import SendEntityEventDelay
+    from HTNBehaviors import ConvertToJavaList
+    SendEntityEventDelay(info.getMyAssignedName(), "GoalTracker_LogMsg", ["UnitLogger", "UNIT_NAME\tACTION\tDATA", ConvertToJavaList([ state.getCurrentUnitName(), "MOVE_TO_POINT", str(wps) ])], 0)
+
 </Code>
           <Import />
         </HTNNode>
@@ -166,6 +182,12 @@ if len(borg.redConvoysWaiting[state.getCurrentUnit().getName()])==0:
             cmdName = state.getCurrentCommander().getAssignedName()
         SendEntityEvent(cmdName, "GoalTracker_ConvoySetup", [])
         borg.delay=1.0
+        # log data 
+        if state.isCommander():
+            from HTNBehaviors import SendEntityEventDelay
+            from HTNBehaviors import ConvertToJavaList
+            SendEntityEventDelay(info.getMyAssignedName(), "GoalTracker_LogMsg", ["UnitLogger", "UNIT_NAME\tACTION\tDATA", ConvertToJavaList([ state.getCurrentUnitName(), "CONVOY_ARRIVED" "" ])], 0)
+
 </Code>
           <Import />
         </HTNNode>
@@ -210,6 +232,13 @@ printMessage("Convoy setup for "+str(borg.formationsByName[formName].size()/2)+"
 # set activity to log
 #borg.redUnitActivity[state.getCurrentUnitName()]="DEPLOY_AT_SITE"
 SetRedUnitActivity(state.getCurrentUnitName(), "DEPLOY_AT_SITE")
+
+# log data 
+if state.isCommander():
+    from HTNBehaviors import SendEntityEventDelay
+    from HTNBehaviors import ConvertToJavaList
+    SendEntityEventDelay(info.getMyAssignedName(), "GoalTracker_LogMsg", ["UnitLogger", "UNIT_NAME\tACTION\tDATA", ConvertToJavaList([ state.getCurrentUnitName(), "SETUP_STARTED" "" ])], 0)
+
 </Code>
           <Import />
         </HTNNode>
@@ -255,6 +284,13 @@ if borg.redUnitStatus[state.getCurrentUnitName()]==setupNum:
     # set activity to log
     #borg.redUnitActivity[state.getCurrentUnitName()]="OPERATE_AT_SITE"
     SetRedUnitActivity(state.getCurrentUnitName(), "OPERATE_AT_SITE")
+
+    # log data 
+    if state.isCommander():
+        from HTNBehaviors import SendEntityEventDelay
+        from HTNBehaviors import ConvertToJavaList
+        SendEntityEventDelay(info.getMyAssignedName(), "GoalTracker_LogMsg", ["UnitLogger", "UNIT_NAME\tACTION\tDATA", ConvertToJavaList([ state.getCurrentUnitName(), "SETUP_COMPLETE" "" ])], 0)
+
 </Code>
           <Import />
         </HTNNode>
@@ -286,6 +322,14 @@ borg.delay=0
 # set activity to log
 #borg.redUnitActivity[state.getCurrentUnitName()]="PACK_UP_AT_SITE"
 SetRedUnitActivity(state.getCurrentUnitName(), "PACK_UP_AT_SITE")
+
+# log data 
+if state.isCommander():
+    from HTNBehaviors import SendEntityEventDelay
+    from HTNBehaviors import ConvertToJavaList
+    SendEntityEventDelay(info.getMyAssignedName(), "GoalTracker_LogMsg", ["UnitLogger", "UNIT_NAME\tACTION\tDATA", ConvertToJavaList([ state.getCurrentUnitName(), "PACK_UP_STARTED" "" ])], 0)
+
+
 </Code>
           <Import />
         </HTNNode>
@@ -321,6 +365,12 @@ else:
 
     SendUnitEventDelay(state.getCurrentUnit().getName(), "GoalTracker_MoveToPoint", ["CONVOY", randSpd, destName], borg.delay)
     borg.delay=1.0
+
+# log data 
+if state.isCommander():
+    from HTNBehaviors import SendEntityEventDelay
+    from HTNBehaviors import ConvertToJavaList
+    SendEntityEventDelay(info.getMyAssignedName(), "GoalTracker_LogMsg", ["UnitLogger", "UNIT_NAME\tACTION\tDATA", ConvertToJavaList([ state.getCurrentUnitName(), "PACKUP_COMPLETE" "" ])], 0)
 </Code>
           <Import />
         </HTNNode>
@@ -363,7 +413,15 @@ printMessage("Returning", True)
 #####################################################
 # set activity to log
 #borg.redUnitActivity[state.getCurrentUnitName()]="RETURN_TO_GARRISON"
-SetRedUnitActivity(state.getCurrentUnitName(), "RETURN_TO_GARRISON")</Code>
+SetRedUnitActivity(state.getCurrentUnitName(), "RETURN_TO_GARRISON")
+
+# log data 
+if state.isCommander():
+    from HTNBehaviors import SendEntityEventDelay
+    from HTNBehaviors import ConvertToJavaList
+    SendEntityEventDelay(info.getMyAssignedName(), "GoalTracker_LogMsg", ["UnitLogger", "UNIT_NAME\tACTION\tDATA", ConvertToJavaList([ state.getCurrentUnitName(), "RETURNING_TO_BASE" "" ])], 0)
+
+</Code>
           <Import />
         </HTNNode>
       </HTNNode>
@@ -391,6 +449,13 @@ if borg.redUnitStatus[state.getCurrentUnitName()]==state.getCurrentUnit().getMem
     # set activity to log
     #borg.redUnitActivity[state.getCurrentUnitName()] = None
     SetRedUnitActivity(state.getCurrentUnitName(), None)
+
+    # log data 
+    if state.isCommander():
+        from HTNBehaviors import SendEntityEventDelay
+        from HTNBehaviors import ConvertToJavaList
+        SendEntityEventDelay(info.getMyAssignedName(), "GoalTracker_LogMsg", ["UnitLogger", "UNIT_NAME\tACTION\tDATA", ConvertToJavaList([ state.getCurrentUnitName(), "ARRIVED_AT_BASE" "" ])], 0)
+
 </Code>
           <Import />
         </HTNNode>
diff --git a/scripts/HTN/Trees/Red/RedForceCoordinator.xml b/scripts/HTN/Trees/Red/RedForceCoordinator.xml
index d7f50423cca2ded53aefa3054e9c1aa616eda7a1..ab566bd68e9cccddd5752dd74bd37d4f78935ff5 100644
--- a/scripts/HTN/Trees/Red/RedForceCoordinator.xml
+++ b/scripts/HTN/Trees/Red/RedForceCoordinator.xml
@@ -412,9 +412,6 @@ _gt_activeNode.putVar("convoyIndex", convoyIndex+1)
 # go to making the convoy move (still in this tree)
 SendEntityEventDelay(info.getMyAssignedName(), "GoalTracker_MoveConvoy", [tu.getName(), formName], 1)
 
-# log data 
-logData = [ info.getMyAssignedName(), state.getCurrentUnitName() ]
-SendEntityEventDelay(info.getMyAssignedName(), "GoalTracker_LogMsg", ["TestLog", "NAME\tUNIT_NAME", ConvertToJavaList(logData)], 0)
 
 </Code>
           <Import />
diff --git a/scripts/HTNBehaviors.py b/scripts/HTNBehaviors.py
index 691bbc41b9486a32edfe1377ef7fae270760c4fa..8c14fa8d46f8ee6078d3b302765428f044900ed3 100644
--- a/scripts/HTNBehaviors.py
+++ b/scripts/HTNBehaviors.py
@@ -16,7 +16,6 @@ __NETWORK_MOVE_PATH__ = "HTN/Trees/NetworkMove.xml"
 
 borg = None
 
-
 def CreateWPAtCurrentLoc(entity):
     wp = HTNUtilities._py_addControlMeasure(entity.getAssignedName(), entity.getPhysicalState().getGroundTruthLocation())
     return wp