diff --git a/deployments/psa-api-test/arch_test_runner.c b/deployments/psa-api-test/arch_test_runner.c
index 90ca304..43ca703 100644
--- a/deployments/psa-api-test/arch_test_runner.c
+++ b/deployments/psa-api-test/arch_test_runner.c
@@ -5,20 +5,43 @@
  */
 
 #include <stdint.h>
+#include <stdbool.h>
 #include <stdio.h>
+#include <string.h>
 #include <service_locator.h>
+#include <rpc/common/logging/logging_caller.h>
 #include "service_under_test.h"
 
 int32_t val_entry(void);
 
+static bool option_selected(const char *option_switch, int argc, char *argv[])
+{
+    bool selected = false;
+
+    for (int i = 1; (i < argc) && !selected; ++i) {
+
+        selected = (strcmp(argv[i], option_switch) == 0);
+    }
+
+    return selected;
+}
+
 int main(int argc, char *argv[])
 {
     int rval = -1;
+    struct logging_caller *selected_call_logger = NULL;
+    struct logging_caller call_logger;
 
+    logging_caller_init(&call_logger, stdout);
     service_locator_init();
 
-    rval = locate_service_under_test();
+    /* Check command line options */
+    if (option_selected("-l", argc, argv)) selected_call_logger = &call_logger;
 
+    /* Locate service under test */
+    rval = locate_service_under_test(selected_call_logger);
+
+    /* Run tests */
     if (!rval) {
 
         rval = val_entry();
@@ -30,5 +53,7 @@
         printf("Failed to locate service under test.  Error code: %d\n", rval);
     }
 
+    logging_caller_deinit(&call_logger);
+
     return rval;
 }
diff --git a/deployments/psa-api-test/crypto/crypto_locator.c b/deployments/psa-api-test/crypto/crypto_locator.c
index 8571b23..609c525 100644
--- a/deployments/psa-api-test/crypto/crypto_locator.c
+++ b/deployments/psa-api-test/crypto/crypto_locator.c
@@ -14,8 +14,7 @@
 static rpc_session_handle session_handle = NULL;
 static struct service_context *crypto_service_context = NULL;
 
-
-int locate_service_under_test(void)
+int locate_service_under_test(struct logging_caller *call_logger)
 {
 	int status = -1;
 
@@ -33,7 +32,15 @@
 
 			if (session_handle) {
 
-				psa_crypto_client_init(caller);
+				if (call_logger) {
+
+					psa_crypto_client_init(logging_caller_attach(call_logger, caller));
+				}
+				else {
+
+					psa_crypto_client_init(caller);
+				}
+
 				status = 0;
 			}
 			else {
diff --git a/deployments/psa-api-test/psa-api-test.cmake b/deployments/psa-api-test/psa-api-test.cmake
index 357abd1..a1262c2 100644
--- a/deployments/psa-api-test/psa-api-test.cmake
+++ b/deployments/psa-api-test/psa-api-test.cmake
@@ -28,6 +28,8 @@
 	COMPONENTS
 		"components/common/tlv"
 		"components/service/common/include"
+		"components/rpc/common/caller"
+		"components/rpc/common/logging"
 )
 
 target_sources(psa-api-test PRIVATE
diff --git a/deployments/psa-api-test/service_under_test.h b/deployments/psa-api-test/service_under_test.h
index 85dc81f..29f99f7 100644
--- a/deployments/psa-api-test/service_under_test.h
+++ b/deployments/psa-api-test/service_under_test.h
@@ -7,6 +7,8 @@
 #ifndef SERVICE_UNDER_TEST_H
 #define SERVICE_UNDER_TEST_H
 
+#include <rpc/common/logging/logging_caller.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -17,7 +19,7 @@
  * associate an RPC Caller with the singleton PSA API client used by
  * the API tests.
  */
-int locate_service_under_test(void);
+int locate_service_under_test(struct logging_caller *call_logger);
 
 /**
  * Reliquish the RPC session when the test run is complete.
