diff --git a/pw_rpc/public/pw_rpc/channel.h b/pw_rpc/public/pw_rpc/channel.h
index f0f890f..ec5d5bd 100644
--- a/pw_rpc/public/pw_rpc/channel.h
+++ b/pw_rpc/public/pw_rpc/channel.h
@@ -28,20 +28,22 @@
 
 class ChannelOutput {
  public:
-  constexpr ChannelOutput(uint32_t id) : id_(id) {}
+  // Creates a channel output with the provided name. The name is used for
+  // logging only.
+  constexpr ChannelOutput(const char* name) : name_(name) {}
 
   virtual ~ChannelOutput() = default;
 
+  constexpr const char* name() const { return name_; }
+
   // Acquire a buffer into which to write an outgoing RPC packet.
   virtual span<std::byte> AcquireBuffer() = 0;
 
   // Sends the contents of the buffer from AcquireBuffer().
   virtual void SendAndReleaseBuffer(size_t size) = 0;
 
-  uint32_t id() const { return id_; }
-
  private:
-  uint32_t id_;
+  const char* name_;
 };
 
 class Channel {
diff --git a/pw_rpc/pw_rpc_private/test_utils.h b/pw_rpc/pw_rpc_private/test_utils.h
index 764d2c7..321eb3f 100644
--- a/pw_rpc/pw_rpc_private/test_utils.h
+++ b/pw_rpc/pw_rpc_private/test_utils.h
@@ -25,7 +25,8 @@
 template <size_t buffer_size>
 class TestOutput : public ChannelOutput {
  public:
-  constexpr TestOutput(uint32_t id) : ChannelOutput(id), sent_packet_{} {}
+  constexpr TestOutput(const char* name = "TestOutput")
+      : ChannelOutput(name), sent_packet_{} {}
 
   span<std::byte> AcquireBuffer() override { return buffer_; }
 
@@ -56,8 +57,7 @@
   static constexpr uint32_t kServiceId = service_id;
 
   ServerContextForTest(const internal::Method& method)
-      : output_(32),
-        channel_(Channel::Create<kChannelId>(&output_)),
+      : channel_(Channel::Create<kChannelId>(&output_)),
         service_(kServiceId),
         context_(channel_, service_, method) {}
 
diff --git a/pw_rpc/server.cc b/pw_rpc/server.cc
index 879cae4..7ad7cf0 100644
--- a/pw_rpc/server.cc
+++ b/pw_rpc/server.cc
@@ -37,8 +37,8 @@
   if (packet.channel_id() == Channel::kUnassignedChannelId ||
       packet.service_id() == 0 || packet.method_id() == 0) {
     // Malformed packet; don't even try to process it.
-    PW_LOG_ERROR("Received incomplete RPC packet on interface %u",
-                 unsigned(interface.id()));
+    PW_LOG_ERROR("Received incomplete RPC packet on interface %s",
+                 interface.name());
     return;
   }
 
diff --git a/pw_rpc/server_test.cc b/pw_rpc/server_test.cc
index 389c9ca..6b5905d 100644
--- a/pw_rpc/server_test.cc
+++ b/pw_rpc/server_test.cc
@@ -61,8 +61,7 @@
       byte(0x82), byte(0x02), byte(0xff), byte(0xff)};
 
   BasicServer()
-      : output_(1),
-        channels_{
+      : channels_{
             Channel::Create<1>(&output_),
             Channel::Create<2>(&output_),
             Channel(),  // available for assignment
@@ -158,7 +157,7 @@
 }
 
 TEST_F(BasicServer, ProcessPacket_UnassignedChannel_AssignsToAvalableSlot) {
-  TestOutput<128> unassigned_output(2);
+  TestOutput<128> unassigned_output;
   server_.ProcessPacket(
       EncodeRequest(PacketType::RPC, /*channel_id=*/99, 42, 27),
       unassigned_output);
