diff --git a/internal/pkg/ofagent/changeEvent.go b/internal/pkg/ofagent/changeEvent.go
index f661ab7..dc3aa39 100644
--- a/internal/pkg/ofagent/changeEvent.go
+++ b/internal/pkg/ofagent/changeEvent.go
@@ -123,5 +123,5 @@
 		}
 	}
 
-	log.Debug("handle-change-event-finsihed")
+	logger.Debug("handle-change-event-finsihed")
 }
diff --git a/internal/pkg/ofagent/common.go b/internal/pkg/ofagent/common.go
new file mode 100644
index 0000000..66bbbcf
--- /dev/null
+++ b/internal/pkg/ofagent/common.go
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2020-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// Package ofagent Common Logger initialization
+package ofagent
+
+import (
+	"github.com/opencord/voltha-lib-go/v3/pkg/log"
+)
+
+var logger log.Logger
+
+func init() {
+	// Setup this package so that it's log level can be modified at run time
+	var err error
+	logger, err = log.AddPackage(log.JSON, log.ErrorLevel, log.Fields{"pkg": "ofagent"})
+	if err != nil {
+		panic(err)
+	}
+}
diff --git a/internal/pkg/ofagent/ofagent.go b/internal/pkg/ofagent/ofagent.go
index 8bb0b94..1d225b2 100644
--- a/internal/pkg/ofagent/ofagent.go
+++ b/internal/pkg/ofagent/ofagent.go
@@ -28,8 +28,6 @@
 	"time"
 )
 
-var logger, _ = log.AddPackage(log.JSON, log.DebugLevel, nil)
-
 type ofaEvent byte
 type ofaState byte
 
@@ -203,7 +201,7 @@
 					state = ofaStateConnecting
 					go func() {
 						if err := ofa.establishConnectionToVoltha(p); err != nil {
-							log.Errorw("voltha-connection-failed", log.Fields{"error": err})
+							logger.Errorw("voltha-connection-failed", log.Fields{"error": err})
 							panic(err)
 						}
 					}()
diff --git a/internal/pkg/openflow/barrier.go b/internal/pkg/openflow/barrier.go
index f371cc8..3db9e84 100644
--- a/internal/pkg/openflow/barrier.go
+++ b/internal/pkg/openflow/barrier.go
@@ -35,6 +35,6 @@
 	reply.SetVersion(4)
 	reply.SetXid(request.GetXid())
 	if err := ofc.SendMessage(reply); err != nil {
-		log.Errorw("barrier-request-send-message", log.Fields{"error": err})
+		logger.Errorw("barrier-request-send-message", log.Fields{"error": err})
 	}
 }
diff --git a/internal/pkg/openflow/client.go b/internal/pkg/openflow/client.go
index f43bb11..94ad645 100644
--- a/internal/pkg/openflow/client.go
+++ b/internal/pkg/openflow/client.go
@@ -31,7 +31,6 @@
 	"time"
 )
 
-var logger, _ = log.AddPackage(log.JSON, log.DebugLevel, nil)
 var NoVolthaConnectionError = errors.New("no-voltha-connection")
 
 type ofcEvent byte
@@ -246,7 +245,7 @@
 					}
 					go func() {
 						if err := ofc.establishConnectionToController(); err != nil {
-							log.Errorw("controller-connection-failed", log.Fields{"error": err})
+							logger.Errorw("controller-connection-failed", log.Fields{"error": err})
 							panic(err)
 						}
 					}()
@@ -282,19 +281,19 @@
 
 	// If the child context exists, then cancel it
 	if ofDone != nil {
-		log.Debugw("closing-child-processes",
+		logger.Debugw("closing-child-processes",
 			log.Fields{"device-id": ofc.DeviceID})
 		ofDone()
 	}
 
 	// If the connection is open, then close it
 	if ofc.conn != nil {
-		log.Debugw("closing-of-connection",
+		logger.Debugw("closing-of-connection",
 			log.Fields{"device-id": ofc.DeviceID})
 		ofc.conn.Close()
 		ofc.conn = nil
 	}
-	log.Debugw("state-machine-finished",
+	logger.Debugw("state-machine-finished",
 		log.Fields{"device-id": ofc.DeviceID})
 }
 
diff --git a/internal/pkg/openflow/common.go b/internal/pkg/openflow/common.go
new file mode 100644
index 0000000..f737ad6
--- /dev/null
+++ b/internal/pkg/openflow/common.go
@@ -0,0 +1,33 @@
+/*
+ * Copyright 2020-present Open Networking Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// Package openflow Common Logger initialization
+package openflow
+
+import (
+	"github.com/opencord/voltha-lib-go/v3/pkg/log"
+)
+
+var logger log.Logger
+
+func init() {
+	// Setup this package so that it's log level can be modified at run time
+	var err error
+	logger, err = log.AddPackage(log.JSON, log.ErrorLevel, log.Fields{"pkg": "openflow"})
+	if err != nil {
+		panic(err)
+	}
+}
diff --git a/internal/pkg/openflow/echo.go b/internal/pkg/openflow/echo.go
index 74f2dc8..af850a4 100644
--- a/internal/pkg/openflow/echo.go
+++ b/internal/pkg/openflow/echo.go
@@ -34,6 +34,6 @@
 	reply.SetXid(request.GetXid())
 	reply.SetVersion(request.GetVersion())
 	if err := ofc.SendMessage(reply); err != nil {
-		log.Errorw("handle-echo-request-send-message", log.Fields{"error": err})
+		logger.Errorw("handle-echo-request-send-message", log.Fields{"error": err})
 	}
 }
diff --git a/internal/pkg/openflow/getConfig.go b/internal/pkg/openflow/getConfig.go
index da5c473..19efdf4 100644
--- a/internal/pkg/openflow/getConfig.go
+++ b/internal/pkg/openflow/getConfig.go
@@ -42,6 +42,6 @@
 				"reply":     js})
 	}
 	if err := ofc.SendMessage(reply); err != nil {
-		log.Errorw("handle-get-config-request-send-message", log.Fields{"error": err})
+		logger.Errorw("handle-get-config-request-send-message", log.Fields{"error": err})
 	}
 }
