diff --git a/src/lynq/lib/liblynq-wifi6/libwifi6.c b/src/lynq/lib/liblynq-wifi6/libwifi6.c
index 46403da..3848f9c 100755
--- a/src/lynq/lib/liblynq-wifi6/libwifi6.c
+++ b/src/lynq/lib/liblynq-wifi6/libwifi6.c
@@ -3175,6 +3175,7 @@
 
 int lynq_wifi_get_sta_available_ap(lynq_wifi_index_e idx, ap_detail_info_s *info)
 {
+    RLOGD("[wifi] ---ernter lynq_wifi_get_sta_available_ap");
     scan_info_s *scan_list = NULL;
     saved_ap_info_s *save_list = NULL;
     int scan_len=0;
@@ -3208,14 +3209,17 @@
         if (strcmp(status, STATE_COMPLETED) == 0)
         {
             info->status = LYNQ_WIFI_AP_STATUS_ENABLE;
+            RLOGD("[wifi] ---lynq_wifi_get_sta_available_ap status --> LYNQ_WIFI_AP_STATUS_ENABLE");
         }
         else
         {
             info->status = LYNQ_WIFI_AP_STATUS_DISABLE;
+            RLOGD("[wifi] ---lynq_wifi_get_sta_available_ap status --> LYNQ_WIFI_AP_STATUS_DISABLE");
         }
         lynq_get_connect_ap_ip(idx, info->base_info.ap_ip);
         lynq_get_connect_ap_rssi(idx, &info->rssi);
         lynq_sta_ssid_password_get(idx, & info->base_info, info->base_info.psw);
+        RLOGD("[wifi] ---ent --lynq_wifi_get_sta_available_ap");
         return 0;
     }
 
@@ -3272,6 +3276,7 @@
         memcpy(&info->base_info, &save_list[best_index].base_info, sizeof (ap_info_s));
         inner_get_ip_by_mac( info->base_info.ap_mac, info->base_info.ap_ip, sizeof (info->base_info.ap_ip));
         info->status = LYNQ_WIFI_AP_STATUS_DISABLE;
+        RLOGD("[wifi] ---lynq_wifi_get_sta_available_ap status ---> LYNQ_WIFI_AP_STATUS_ENABLE");
         info->rssi = best_rssi;
         ret = 0;
     }
@@ -3285,6 +3290,7 @@
         free(save_list);
     }
 
+    RLOGD("[wifi] ---end -lynq_wifi_get_sta_available_ap");
     return ret;
 }
 
