diff --git a/VERSION b/VERSION
index c9a5712..b4da54e 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.2.2-dev
+1.2.3-dev
diff --git a/topic-exporter.go b/topic-exporter.go
index 7e604b5..f4ae0bf 100644
--- a/topic-exporter.go
+++ b/topic-exporter.go
@@ -16,9 +16,8 @@
 
 import (
 	"encoding/json"
-	"log"
-	"github.com/prometheus/client_golang/prometheus"
 	"gerrit.opencord.org/kafka-topic-exporter/common/logger"
+	"github.com/prometheus/client_golang/prometheus"
 )
 
 var (
@@ -447,31 +446,31 @@
 		kpi := VolthaKPI{}
 		err := json.Unmarshal(data, &kpi)
 		if err != nil {
-			log.Fatal(err)
+			logger.Error("Invalid msg on voltha.kpis: %s, Unprocessed Msg: %s", err.Error(), string(data))
 		}
 		exportVolthaKPI(kpi)
 	case "onos.kpis":
 		kpi := OnosKPI{}
 		err := json.Unmarshal(data, &kpi)
 		if err != nil {
-			log.Fatal(err)
+			logger.Error("Invalid msg on onos.kpis: %s, Unprocessed Msg: %s", err.Error(), string(data))
 		}
 		exportOnosKPI(kpi)
 	case "importer.kpis":
 		kpi := ImporterKPI{}
 		err := json.Unmarshal(data, &kpi)
 		if err != nil {
-			log.Fatal(err)
+			logger.Error("Invalid msg on importer.kpis: %s, Unprocessed Msg: %s", err.Error(), string(data))
 		}
 		exportImporterKPI(kpi)
 	case "onos.aaa.stats.kpis":
 		kpi := OnosAaaKPI{}
 		err := json.Unmarshal(data, &kpi)
 		if err != nil {
-			log.Fatal(err)
+			logger.Error("Invalid msg on onos.aaa.stats.kpis: %s, Unprocessed Msg: %s", err.Error(), string(data))
 		}
 		exportOnosAaaKPI(kpi)
 	default:
-		logger.Warn("Unexpected export. Should not come here")
+		logger.Warn("Unexpected export. Topic [%s] not supported. Should not come here", *topic)
 	}
 }
diff --git a/topic-listener.go b/topic-listener.go
index 9b0f2dc..47003e8 100644
--- a/topic-listener.go
+++ b/topic-listener.go
@@ -28,8 +28,8 @@
 	defer wg.Done()
 	consumer, err := master.ConsumePartition(*topic, 0, sarama.OffsetOldest)
 	if err != nil {
-		logger.Error("topicListener panic")
-		panic(err)
+		logger.Error("topicListener panic, topic=[%s]: %s", *topic, err.Error())
+		return
 	}
 	signals := make(chan os.Signal, 1)
 	signal.Notify(signals, os.Interrupt)
@@ -38,9 +38,9 @@
 		for {
 			select {
 			case err := <-consumer.Errors():
-				logger.Error("%s", err)
+				logger.Error("Consumer error: %s", err.Err)
 			case msg := <-consumer.Messages():
-				logger.Debug("Message on %s: %s", *topic, string(msg.Value))
+				logger.Debug("Got message on topic=[%s]: %s", *topic, string(msg.Value))
 				export(topic, msg.Value)
 			case <-signals:
 				logger.Warn("Interrupt is detected")
