diff --git a/internal/pkg/controller/audittables.go b/internal/pkg/controller/audittables.go
index 0be505a..d98888c 100644
--- a/internal/pkg/controller/audittables.go
+++ b/internal/pkg/controller/audittables.go
@@ -161,7 +161,7 @@
 		} else {
 			// The flow exists at the controller but not at the device
 			// Push the flow to the device
-			logger.Debugw(ctx, "Adding Meter To Missing Meters", log.Fields{"Id": meter.ID})
+			logger.Infow(ctx, "Adding Meter To Missing Meters", log.Fields{"Id": meter.ID})
 			missingMeters = append(missingMeters, meter)
 		}
 	}
diff --git a/internal/pkg/controller/controller.go b/internal/pkg/controller/controller.go
index 65b435e..1c02738 100644
--- a/internal/pkg/controller/controller.go
+++ b/internal/pkg/controller/controller.go
@@ -169,7 +169,7 @@
 		taskQueue = taskQueueIntf.(*tasks.Tasks)
 	}
 	taskQueue.AddTask(task)
-	logger.Warnw(ctx, "Task Added to Controller Task List", log.Fields{"Len": taskQueue.NumPendingTasks(), "Total": taskQueue.TotalTasks()})
+	logger.Debugw(ctx, "Task Added to Controller Task List", log.Fields{"Len": taskQueue.NumPendingTasks(), "Total": taskQueue.TotalTasks()})
 }
 
 // AddNewDevice - called when new device is discovered. This will be
@@ -400,7 +400,7 @@
 		if delFlowsOnlyInDevice {
 			for cookie, subFlow := range flow.SubFlows {
 				err := d.DelFlow(ctx, subFlow)
-				logger.Infow(ctx, "Flow Deleted from device/DB", log.Fields{"Cookie": cookie, "Device": device, "Port": port, "Error": err})
+				logger.Debugw(ctx, "Flow Deleted from device/DB", log.Fields{"Cookie": cookie, "Device": device, "Port": port, "Error": err})
 			}
 		} else {
 			flow.Command = of.CommandDel
diff --git a/internal/pkg/controller/device.go b/internal/pkg/controller/device.go
index 497339b..73fc348 100644
--- a/internal/pkg/controller/device.go
+++ b/internal/pkg/controller/device.go
@@ -365,7 +365,7 @@
 
 // RestoreGroupsFromDb - restores all groups from DB
 func (d *Device) RestoreGroupsFromDb(cntx context.Context) {
-	logger.Info(ctx, "Restoring Groups")
+	logger.Debug(ctx, "Restoring Groups")
 	groups, _ := db.GetGroups(cntx, d.ID)
 	for _, group := range groups {
 		b, ok := group.Value.([]byte)
@@ -520,7 +520,7 @@
 		if p == nil {
 			return errors.New("unknown port")
 		} else {
-			logger.Infow(ctx, "Found port by name", log.Fields{"PortName": p.Name, "PortID": p.ID})
+			logger.Debugw(ctx, "Found port by name", log.Fields{"PortName": p.Name, "PortID": p.ID})
 		}
 	}
 	if p.State == PortStateUp {
@@ -785,7 +785,7 @@
 
 	for _, port := range d.PortsByID {
 		if port.State != PortStateDown {
-			logger.Infow(ctx, "Resetting Port State to DOWN", log.Fields{"Device": d.ID, "Port": port})
+			logger.Debugw(ctx, "Resetting Port State to DOWN", log.Fields{"Device": d.ID, "Port": port})
 			GetController().PortDownInd(cntx, d.ID, port.Name)
 			port.State = PortStateDown
 			d.WritePortToDb(cntx, port)
@@ -844,7 +844,7 @@
 		return
 	}
 	if p := d.GetPortByID(port); p != nil {
-		logger.Infow(ctx, "Port State Processing", log.Fields{"Received": state, "Current": p.State})
+		logger.Infow(ctx, "Port State Processing", log.Fields{"Received": state, "Current": p.State, "port": port, "portName": portName, "Device": d.ID})
 
 		if p.Name != portName {
 			logger.Warnw(ctx, "Dropping Port State processing: Port name does not match", log.Fields{"vgcPort": p.Name, "ofpPort": portName, "ID": port})
@@ -856,13 +856,13 @@
 		p.Tasks.CheckAndInitialize(d.ctx)
 		if state == uint32(ofp.OfpPortState_OFPPS_LIVE) && p.State == PortStateDown {
 			// Transition from DOWN to UP
-			logger.Infow(ctx, "Port State Change to UP", log.Fields{"Device": d.ID, "Port": port})
+			logger.Debugw(ctx, "Port State Change to UP", log.Fields{"Device": d.ID, "Port": port})
 			GetController().PortUpInd(cntx, d.ID, p.Name)
 			p.State = PortStateUp
 			d.WritePortToDb(cntx, p)
 		} else if (state != uint32(ofp.OfpPortState_OFPPS_LIVE)) && (p.State != PortStateDown) {
 			// Transition from UP to Down
-			logger.Infow(ctx, "Port State Change to Down", log.Fields{"Device": d.ID, "Port": port})
+			logger.Debugw(ctx, "Port State Change to Down", log.Fields{"Device": d.ID, "Port": port})
 			GetController().PortDownInd(cntx, d.ID, p.Name)
 			p.State = PortStateDown
 			d.WritePortToDb(cntx, p)
@@ -879,13 +879,13 @@
 		return
 	}
 	if p := d.GetPortByID(port); p != nil {
-		logger.Infow(ctx, "Port State Processing after Reboot", log.Fields{"Received": state, "Current": p.State})
+		logger.Infow(ctx, "Port State Processing after Reboot", log.Fields{"Received": state, "Current": p.State, "port": port, "Device": d.ID})
 		p.Tasks.Initialize(d.ctx)
 		if p.State == PortStateUp {
-			logger.Infow(ctx, "Port State: UP", log.Fields{"Device": d.ID, "Port": port})
+			logger.Debugw(ctx, "Port State: UP", log.Fields{"Device": d.ID, "Port": port})
 			GetController().PortUpInd(cntx, d.ID, p.Name)
 		} else if p.State == PortStateDown {
-			logger.Infow(ctx, "Port State: Down", log.Fields{"Device": d.ID, "Port": port})
+			logger.Debugw(ctx, "Port State: Down", log.Fields{"Device": d.ID, "Port": port})
 			GetController().PortDownInd(cntx, d.ID, p.Name)
 		}
 	}
