diff --git a/sim/BUILD b/sim/BUILD
index bbc4d99..dc21c6e 100644
--- a/sim/BUILD
+++ b/sim/BUILD
@@ -20,6 +20,7 @@
         "@com_google_absl//absl/functional:any_invocable",
         "@com_google_absl//absl/log:check",
         "@com_google_absl//absl/strings",
+        "@com_google_absl//absl/strings:str_format",
         "@com_google_mpact-riscv//riscv:riscv_state",
     ],
 )
diff --git a/sim/kelvin_state.cc b/sim/kelvin_state.cc
index 7e800cc..06b823b 100644
--- a/sim/kelvin_state.cc
+++ b/sim/kelvin_state.cc
@@ -8,6 +8,7 @@
 #include <string>
 
 #include "absl/log/check.h"
+#include "absl/strings/str_format.h"
 #include "absl/strings/string_view.h"
 
 namespace kelvin::sim {
@@ -47,6 +48,7 @@
 // Print the logging message based on log_args_.
 void KelvinState::PrintLog(absl::string_view format_string) {
   char *print_ptr = const_cast<char *>(format_string.data());
+  std::string log_string = "";
   while (*print_ptr) {
     if (*print_ptr == '%') {
       CHECK_GT(log_args_.size(), 0)
@@ -54,15 +56,17 @@
       if (log_args_[0].type() == typeid(uint32_t)) {
         switch (print_ptr[1]) {
           case 'u':
-            std::cout << std::dec << std::any_cast<uint32_t>(log_args_[0]);
+            log_string +=
+                absl::StrFormat("%u", std::any_cast<uint32_t>(log_args_[0]));
             break;
           case 'd':
-            std::cout << std::dec
-                      << static_cast<int32_t>(
-                             std::any_cast<uint32_t>(log_args_[0]));
+            log_string += absl::StrFormat(
+                "%d",
+                static_cast<int32_t>(std::any_cast<uint32_t>(log_args_[0])));
             break;
           case 'x':
-            std::cout << std::hex << std::any_cast<uint32_t>(log_args_[0]);
+            log_string +=
+                absl::StrFormat("%x", std::any_cast<uint32_t>(log_args_[0]));
             break;
           default:
             std::cerr << "incorrect format" << std::endl;
@@ -71,17 +75,18 @@
       }
       if (log_args_[0].type() == typeid(std::string)) {
         if (print_ptr[1] == 's') {
-          std::cout << std::any_cast<std::string>(log_args_[0]);
+          log_string += std::any_cast<std::string>(log_args_[0]);
         } else {
           std::cerr << "incorrect format" << std::endl;
         }
       }
       log_args_.erase(log_args_.begin());
       print_ptr += 2;  // skip the format specifier too.
-    } else {
-      std::cout << *print_ptr++;
+    } else {  // Default. Just append the character from the format string.
+      log_string += *print_ptr++;
     }
   }
+  std::cout << log_string;
   // Flush log_args_
   log_args_.clear();
 }
diff --git a/sim/test/kelvin_log_instructions_test.cc b/sim/test/kelvin_log_instructions_test.cc
index e868a62..e86fa35 100644
--- a/sim/test/kelvin_log_instructions_test.cc
+++ b/sim/test/kelvin_log_instructions_test.cc
@@ -160,9 +160,9 @@
 }
 
 TEST_F(KelvinLogInstructionsTest, PrintTwoArguments) {
-  constexpr char kFormatString[] = "%s World %d\n";
+  constexpr char kFormatString[] = "%s World %x\n";
   constexpr uint32_t kCharStream = 0x00006948;  // "Hi"
-  constexpr uint32_t kPrintNum = 1337;
+  constexpr uint32_t kPrintNum = 0xbaddecaf;
 
   // Initialize memory.
   auto *db = state_->db_factory()->Allocate<char>(sizeof(kFormatString));
@@ -207,7 +207,7 @@
     instructions[i]->Execute(nullptr);
   }
   const std::string stdout_str = testing::internal::GetCapturedStdout();
-  EXPECT_EQ("Hi World 1337\n", stdout_str);
+  EXPECT_EQ("Hi World baddecaf\n", stdout_str);
 }
 
 }  // namespace
