diff --git a/aos/ipc_lib/queue.h b/aos/ipc_lib/queue.h
index b93cc42..5b68f2e 100644
--- a/aos/ipc_lib/queue.h
+++ b/aos/ipc_lib/queue.h
@@ -90,10 +90,10 @@
     static constexpr Options<RawQueue> kWriteFailureOptions =
         kNonBlock | kBlock | kOverride;
     if (!options.NoOthersSet(kWriteFailureOptions)) {
-      LOG(FATAL, "illegal write options in %x\n", options.printable());
+      AOS_LOG(FATAL, "illegal write options in %x\n", options.printable());
     }
     if (!options.ExactlyOneSet(kWriteFailureOptions)) {
-      LOG(FATAL, "invalid write options %x\n", options.printable());
+      AOS_LOG(FATAL, "invalid write options %x\n", options.printable());
     }
     return DoWriteMessage(msg, options);
   }
@@ -123,7 +123,7 @@
     CheckReadOptions(options);
     static constexpr Options<RawQueue> kFromEndAndPeek = kFromEnd | kPeek;
     if (options.AllSet(kFromEndAndPeek)) {
-      LOG(FATAL, "ReadMessageIndex(kFromEnd | kPeek) is not allowed\n");
+      AOS_LOG(FATAL, "ReadMessageIndex(kFromEnd | kPeek) is not allowed\n");
     }
     return DoReadMessageIndex(options, index, timeout);
   }
@@ -161,11 +161,11 @@
     static constexpr Options<RawQueue> kValidOptions =
         kPeek | kFromEnd | kNonBlock | kBlock;
     if (!options.NoOthersSet(kValidOptions)) {
-      LOG(FATAL, "illegal read options in %x\n", options.printable());
+      AOS_LOG(FATAL, "illegal read options in %x\n", options.printable());
     }
     static constexpr Options<RawQueue> kBlockChoices = kNonBlock | kBlock;
     if (!options.ExactlyOneSet(kBlockChoices)) {
-      LOG(FATAL, "invalid read options %x\n", options.printable());
+      AOS_LOG(FATAL, "invalid read options %x\n", options.printable());
     }
   }
 
