Pulse Pro is a professional macOS app that allows you to view logs in real-time. The app is designed to be flexible, expansive, and precise while using all the familiar macOS patterns. It makes it easy to navigate large log files with table and text modes, filters, scroller markers, an all-new network inspector, JSON filters, and more.
Pulse Pro is distributed on GitHub.
With Pulse Pro, you can open logs shared from your other devices and view logs in real-time. When you open the app, it welcomes you with the list of recently opened documents and devices.
Remote logging is easy to use, fast, and reliable. There are three steps to enable it:
- Launch the Pulse Pro app
- Integrate Pulse framework into your app
- Enable "Remote Logging" in the Pulse settings and select the Mac to connect to
Pulse is written in SwiftUI and is available on all Apple platforms. The same is true with remote logging. It works on iOS, watchOS, tvOS, and macOS if you need to. And it even works in simulators.
When the devices are paired, there is zero additional interaction needed. When the device connects to the Pulse Pro app, simply open it to start logging.
The logs are stored persistently both on the device with the Pulse framework and by the Pulse Pro app, so you can get back to them later. You can also easily delete them if needed (⌘K).
There are three views of your logs. The first is Console, a flexible and customizable table. You can view your network requests together with the rest of the logs, view the details, and filter the list.
Tip: You can double-click to open details in a new window.
Tables are perfect for many use cases, but sometimes nothing beats good old text. But plain text logs have their own problems. As soon as you go plain text, you lose all of the structure. Text usually has no formatting, you can't open details for the message, and you can't filter text dynamically like you can a table view. But what if you could?
Select the Text mode, and Pulse Pro will generate the formatted text based on your current filters. Change the filters, and it re-generates the text.
The text view itself is also pretty powerful. You can search, filter by line, show line numbers, show responses inline, and more. Unlike the traditional plain text logging systems, you can make this choice on the display time instead of the time of logging, which is great.
And last, but not least, the Network mode – a view optimized for working with network requests.
It has a dedicated set of powerful filters. For example, you can filter based on the response body.
You can view request metrics, headers, cURL respresentation of the request, and more.
The response viewer is a great way to view JSON responses (more formats are going to be supported in the future). It has a ton of convenience features for manipulating JSON, such as collapsing and focusing on objects and arrays.
You can even use Pulse Pro as a standalone JSON viewer. It also has jq integration, which is a tool for processing JSON, applying the given filter. You can find some examples of what it can do at the jq website. It's really-really powerful and Pulse Pro makes it super nice to use with side-by-side live results view, and nice output formatting.
When you scan through the logs, you sometimes find important messages you may want to get back to later. With pins, you can easily do that. Just click on the row number that you'd like to pin, and it will appear in the scroller. You can easily navigate back to this message by simply clicking on the mark in the scroller – just like breakpoints and errors in the Xcode scroller.
- ⌘1: Show Messages (Console)
- ⌘2: Show Text Log
- ⌘3: Show Network Requests
- ⇧⌘S: Start/Stop Streaming
- ⇧⌘N: Toggle "Now" Mode
- ⇧⌘E: Toggle "Only Errors"
- ⇧⌘P: Toggle "Only Pins"
- ⌘P: Toggle Pin for a Message
- ⌃⌥⌘P: Remove All Pins
- ⌘K: Remove All Messages
- ⌘F: Start Searching
- ⌥⌘F: Toggle Filters
- ⇧⌘0: Reset Filters
- ⌘F: Start Searching
- ⌘L: Toggle Line Numbers
- ⌘+: Increase Font Size
- ⌘-: Decrease Font Size
- ⌘0: Reset Font Size