A quick guide on networking logs in Swift

Nitin Aggarwal
3 min readSep 19, 2023

When debugging, having access to detailed logs can be immensely helpful. It lets you quickly identify and diagnose issues such as incorrect request parameters, unexpected responses, or connectivity problems.

You can use these logs to troubleshoot issues like incorrect API endpoints, missing headers, malformed request bodies, or server errors with specific response codes.

Network requests can impact the performance of your app. Logging can help you identify and optimize slow or redundant network calls.

You can use different approaches to log the networking requests and responses.

In this guide, you will learn a quick approach that is easy to use for logging requests and responses. You will learn how to log networking information with the power of extensions in Swift.

Let’s start.

URLRequest Logs

First, create an extension for URLRequest to add logging functionality. You can do this in a separate Swift file for better organization like the below:

extension URLRequest {

func log() {
let body = self.httpBody.map { String(decoding: $0, as: UTF8.self) } ?? "Nil"
let requestUrl = self.url?.absoluteString ?? "Nil"

var headerPrint = ""
#if DEBUG

--

--

Nitin Aggarwal

Lead iOS Engineer, Mentor, Author, Writer; 📙 Released "iOS Interview Handbook" 🔗 topmate.io/nitinagam17/827990