[SEBA-342] Log cleanup

Change-Id: I6db4a6dd376d3237af449232f015d1782af174c4
diff --git a/common/logger/logger.go b/common/logger/logger.go
index f0bf4aa..b53e86d 100644
--- a/common/logger/logger.go
+++ b/common/logger/logger.go
@@ -30,6 +30,7 @@
 func Setup(kafkaBroker string, level string) {
 
 	logger := log.New()
+	logger.SetReportCaller(true)
 	myLogger = logger.WithField("topics", []string{"bbsim.log"})
 
 	// TODO make this configurable via cli arg
@@ -63,6 +64,10 @@
 	myLogger.WithField("kafkaBroker", kafkaBroker).Debug("Logger setup done")
 }
 
+func GetLogger() *log.Entry {
+	return myLogger
+}
+
 func WithField(key string, value interface{}) *log.Entry {
 	return myLogger.WithField(key, value)
 }
@@ -71,26 +76,26 @@
 	return myLogger.WithFields(fields)
 }
 
-func Panic(args ...interface{}) {
-	myLogger.Panic(fmt.Sprint(args...))
+func Panic(msg string, args ...interface{}) {
+	myLogger.Panic(fmt.Sprintf(msg, args...))
 }
 
-func Fatal(args ...interface{}) {
-	myLogger.Fatal(fmt.Sprint(args...))
+func Fatal(msg string, args ...interface{}) {
+	myLogger.Fatal(fmt.Sprintf(msg, args...))
 }
 
-func Error(args ...interface{}) {
-	myLogger.Error(fmt.Sprint(args...))
+func Error(msg string, args ...interface{}) {
+	myLogger.Error(fmt.Sprintf(msg, args...))
 }
 
-func Warn(args ...interface{}) {
-	myLogger.Warn(fmt.Sprint(args...))
+func Warn(msg string, args ...interface{}) {
+	myLogger.Warn(fmt.Sprintf(msg, args...))
 }
 
-func Info(args ...interface{}) {
-	myLogger.Info(fmt.Sprint(args...))
+func Info(msg string, args ...interface{}) {
+	myLogger.Info(fmt.Sprintf(msg, args...))
 }
 
-func Debug(args ...interface{}) {
-	myLogger.Debug(fmt.Sprint(args...))
+func Debug(msg string, args ...interface{}) {
+	myLogger.Debug(fmt.Sprintf(msg, args...))
 }
diff --git a/common/utils/utils.go b/common/utils/utils.go
index a8fc3ba..f532d51 100644
--- a/common/utils/utils.go
+++ b/common/utils/utils.go
@@ -19,11 +19,29 @@
 import (
 	"fmt"
 
+	"gerrit.opencord.org/voltha-bbsim/common/logger"
+
 	"gerrit.opencord.org/voltha-bbsim/device"
+	log "github.com/sirupsen/logrus"
 )
 
 func OnuToSn(onu *device.Onu) string {
-	// TODO this can be more elegant,
+	// FIXME
 	// see https://github.com/opencord/voltha/blob/master/voltha/adapters/openolt/openolt_device.py#L929-L943
-	return string(onu.SerialNumber.VendorId) + "00000" + fmt.Sprint(onu.IntfID) + "0" + fmt.Sprintf("%x", onu.OnuID)
+	return string(onu.SerialNumber.VendorId) + "00000" + fmt.Sprint(onu.IntfID) + "0" + fmt.Sprintf("%x", onu.OnuID-1)
+}
+
+func LoggerWithOnu(onu *device.Onu) *log.Entry {
+
+	if onu == nil {
+		logger.Warn("utils.LoggerWithOnu has been called without Onu")
+		return logger.GetLogger()
+	}
+
+	return logger.WithFields(log.Fields{
+		"serial_number": OnuToSn(onu),
+		"interfaceId":   onu.IntfID,
+		"onuId":         onu.OnuID,
+		"oltId":         onu.OltID,
+	})
 }