diff --git a/jjb/pipeline/voltha/master/bbsim-tests.groovy b/jjb/pipeline/voltha/master/bbsim-tests.groovy
index b2f0220..2423d23 100755
--- a/jjb/pipeline/voltha/master/bbsim-tests.groovy
+++ b/jjb/pipeline/voltha/master/bbsim-tests.groovy
@@ -23,7 +23,7 @@
 
 def clusterName = "kind-ci"
 
-def execute_test(testTarget, workflow, teardown, testSpecificHelmFlags = "") {
+def execute_test(testTarget, workflow, testLogging, teardown, testSpecificHelmFlags = "") {
   def infraNamespace = "default"
   def volthaNamespace = "voltha"
   def robotLogsDir = "RobotLogs"
@@ -108,33 +108,14 @@
     }
   }
   stage('Run test ' + testTarget + ' on ' + workflow + ' workFlow') {
-    // start logging
-    sh """
-    mkdir -p $WORKSPACE/${testTarget}-components
-    _TAG=kail-${workflow} kail -n ${infraNamespace} -n ${volthaNamespace} > $WORKSPACE/${testTarget}-components/onos-voltha-combined.log &
-    """
     sh """
     mkdir -p $WORKSPACE/${robotLogsDir}/${testTarget}-robot
     export ROBOT_MISC_ARGS="-d $WORKSPACE/${robotLogsDir}/${testTarget}-robot "
-    ROBOT_MISC_ARGS+="-v ONOS_SSH_PORT:30115 -v ONOS_REST_PORT:30120 -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace}"
+    ROBOT_MISC_ARGS+="-v ONOS_SSH_PORT:30115 -v ONOS_REST_PORT:30120 -v NAMESPACE:${volthaNamespace} -v INFRA_NAMESPACE:${infraNamespace} -v container_log_dir:$WORKSPACE/${robotLogsDir}/${testTarget}-robot -v logging:${testLogging}"
     export KVSTOREPREFIX=voltha/voltha_voltha
 
     make -C $WORKSPACE/voltha-system-tests ${testTarget} || true
     """
-    // stop logging
-    sh """
-      P_IDS="\$(ps e -ww -A | grep "_TAG=kail-${workflow}" | grep -v grep | awk '{print \$1}')"
-      if [ -n "\$P_IDS" ]; then
-        echo \$P_IDS
-        for P_ID in \$P_IDS; do
-          kill -9 \$P_ID
-        done
-      fi
-      cd $WORKSPACE/${testTarget}-components/
-      rm onos-voltha-combined.log.gz || true
-      gzip -k onos-voltha-combined.log
-      rm onos-voltha-combined.log
-    """
     getPodsInfo("$WORKSPACE/${testTarget}-components")
   }
 }
@@ -251,8 +232,9 @@
               def workflow = test["workflow"]
               def flags = test["flags"]
               def teardown = test["teardown"].toBoolean()
-              println "Executing test ${target} on workflow ${workflow} with extra flags ${flags}"
-              execute_test(target, workflow, teardown, flags)
+              def logging = test["logging"]
+              println "Executing test ${target} on workflow ${workflow} with logging ${logging} and extra flags ${flags}"
+              execute_test(target, workflow, logging, teardown, flags)
             }
           }
         }
diff --git a/jjb/pipeline/voltha/voltha-2.8/bbsim-tests.groovy b/jjb/pipeline/voltha/voltha-2.8/bbsim-tests.groovy
index ef6964b..411024b 100755
--- a/jjb/pipeline/voltha/voltha-2.8/bbsim-tests.groovy
+++ b/jjb/pipeline/voltha/voltha-2.8/bbsim-tests.groovy
@@ -23,7 +23,7 @@
 
 def clusterName = "kind-ci"
 
-def execute_test(testTarget, workflow, teardown, testSpecificHelmFlags = "") {
+def execute_test(testTarget, workflow, testLogging, teardown, testSpecificHelmFlags = "") {
   def infraNamespace = "default"
   def volthaNamespace = "voltha"
   def robotLogsDir = "RobotLogs"
@@ -108,33 +108,14 @@
     }
   }
   stage('Run test ' + testTarget + ' on ' + workflow + ' workFlow') {
-    // start logging
-    sh """
-    mkdir -p $WORKSPACE/${testTarget}-components
-    _TAG=kail-${workflow} kail -n ${infraNamespace} -n ${volthaNamespace} > $WORKSPACE/${testTarget}-components/onos-voltha-combined.log &
-    """
     sh """
     mkdir -p $WORKSPACE/${robotLogsDir}/${testTarget}-robot
     export ROBOT_MISC_ARGS="-d $WORKSPACE/${robotLogsDir}/${testTarget}-robot "
-    ROBOT_MISC_ARGS+="-v ONOS_SSH_PORT:30115 -v ONOS_REST_PORT:30120 -v INFRA_NAMESPACE:${infraNamespace}"
+    ROBOT_MISC_ARGS+="-v ONOS_SSH_PORT:30115 -v ONOS_REST_PORT:30120 -v INFRA_NAMESPACE:${infraNamespace} -v container_log_dir:$WORKSPACE/${robotLogsDir}/${testTarget}-robot -v logging:${testLogging}"
     export KVSTOREPREFIX=voltha/voltha_voltha
 
     make -C $WORKSPACE/voltha-system-tests ${testTarget} || true
     """
-    // stop logging
-    sh """
-      P_IDS="\$(ps e -ww -A | grep "_TAG=kail-${workflow}" | grep -v grep | awk '{print \$1}')"
-      if [ -n "\$P_IDS" ]; then
-        echo \$P_IDS
-        for P_ID in \$P_IDS; do
-          kill -9 \$P_ID
-        done
-      fi
-      cd $WORKSPACE/${testTarget}-components/
-      rm onos-voltha-combined.log.gz || true
-      gzip -k onos-voltha-combined.log
-      rm onos-voltha-combined.log
-    """
     getPodsInfo("$WORKSPACE/${testTarget}-components")
   }
 }
@@ -251,8 +232,9 @@
               def workflow = test["workflow"]
               def flags = test["flags"]
               def teardown = test["teardown"].toBoolean()
-              println "Executing test ${target} on workflow ${workflow} with extra flags ${flags}"
-              execute_test(target, workflow, teardown, flags)
+              def logging = test["logging"]
+              println "Executing test ${target} on workflow ${workflow} with logging ${logging} and extra flags ${flags}"
+              execute_test(target, workflow, logging, teardown, flags)
             }
           }
         }
