diff --git a/internal/pkg/controller/audittables.go b/internal/pkg/controller/audittables.go
index 26b250e..30e52f6 100644
--- a/internal/pkg/controller/audittables.go
+++ b/internal/pkg/controller/audittables.go
@@ -79,7 +79,7 @@
 // Start is called by the framework and is responsible for implementing
 // the actual task.
 func (att *AuditTablesTask) Start(ctx context.Context, taskID uint8) error {
-	logger.Warnw(ctx, "Audit Table Task Triggered", log.Fields{"Context": ctx, "taskId": taskID, "Device": att.device.ID})
+	logger.Infow(ctx, "Audit Table Task Triggered", log.Fields{"Context": ctx, "taskId": taskID, "Device": att.device.ID})
 	att.taskID = taskID
 	att.ctx = ctx
 	var errInfo error
@@ -111,9 +111,9 @@
 
 	// Triggering deletion of excess groups from device after the corresponding flows are removed
 	// to avoid flow dependency error during group deletion
-	logger.Infow(ctx, "Excess Groups", log.Fields{"Groups": rcvdGroups})
+	logger.Debugw(ctx, "Excess Groups", log.Fields{"Groups": rcvdGroups})
 	att.DelExcessGroups(rcvdGroups)
-	logger.Warnw(ctx, "Audit Table Task Completed", log.Fields{"Context": ctx, "taskId": taskID, "Device": att.device.ID})
+	logger.Infow(ctx, "Audit Table Task Completed", log.Fields{"Context": ctx, "taskId": taskID, "Device": att.device.ID})
 	return errInfo
 }
 
@@ -576,7 +576,7 @@
 	}
 	// 1st process the NNI port before all other ports so that the device state can be updated.
 	if vgcPort, ok := att.device.PortsByID[NNIPortID]; ok {
-		logger.Info(ctx, "Processing NNI port state")
+		logger.Debugw(ctx, "Processing NNI port state", log.Fields{"Port ID": vgcPort.ID, "Port Name": vgcPort.Name})
 		processPortState(NNIPortID, vgcPort)
 	}
 
@@ -592,7 +592,7 @@
 	}
 
 	if att.stop {
-		logger.Errorw(ctx, "Audit Device Task Canceled", log.Fields{"Context": att.ctx, "Task": att.taskID})
+		logger.Warnw(ctx, "Audit Device Task Canceled", log.Fields{"Context": att.ctx, "Task": att.taskID})
 		return tasks.ErrTaskCancelError
 	}
 	att.AddMissingPorts(ctx, missingPorts)
@@ -602,7 +602,7 @@
 
 // AddMissingPorts to add the missing ports
 func (att *AuditTablesTask) AddMissingPorts(cntx context.Context, mps map[uint32]*ofp.OfpPort) {
-	logger.Debugw(ctx, "Device Audit - Add Missing Ports", log.Fields{"NumPorts": len(mps)})
+	logger.Infow(ctx, "Device Audit - Add Missing Ports", log.Fields{"NumPorts": len(mps)})
 
 	addMissingPort := func(mp *ofp.OfpPort) {
 		logger.Debugw(ctx, "Process Port Add Ind", log.Fields{"Port No": mp.PortNo, "Port Name": mp.Name})
@@ -620,7 +620,7 @@
 
 	// 1st process the NNI port before all other ports so that the flow provisioning for UNIs can be enabled
 	if mp, ok := mps[NNIPortID]; ok {
-		logger.Info(ctx, "Adding Missing NNI port")
+		logger.Debugw(ctx, "Adding Missing NNI port", log.Fields{"PortNo": mp.PortNo})
 		addMissingPort(mp)
 	}
 
