Screen.Recording.2023-04-13.at.10.58.50.mov
Mate is a macOS application designed to help developers view their logs in a more user-friendly and informative way. You can significantly enhance your debugging process, improve productivity, and streamline your iOS development workflow.
Mate aims to be a comprehensive alternative to Xcode's console, with an array of powerful features and a developer-centric UI/UX.
Mate enables you to effortlessly load and view log files generated by HKLogger in a more intuitive and developer-centric manner. Say goodbye to traditional console interfaces and welcome a modern, user-friendly log viewing experience.
With Mate, you can easily filter logs based on severity, type, and date, allowing you to focus on specific areas of interest. Whether you're troubleshooting critical errors or analyzing networking logs, Mate empowers you with powerful filtering capabilities.
The built-in search functionality of Mate lets you quickly locate specific log entries by using keywords. This feature saves you time by narrowing down the logs to relevant information, ensuring a smooth debugging experience.
Mate equips you with the ability to sort logs based on various criteria, providing a customizable view of your log data. Sort logs by severity, timestamp, or any other desired parameter, allowing you to gain insights in the most efficient way possible.
Mate dynamically updates its user interface to reflect any changes made to the log file. Whenever a new line is added, Mate instantly renders the updated UI, ensuring you always have access to the latest log entries without any manual intervention.
MacOS 13.0+ (Ventura).
- Upload your logs file to Mate 🧉. Psss: if you’re developing an iOS app, you can use HKLogger in it, which is a library that creates and handle all the logging logic for you. Besides, it works perfectly with Mate!
- Visualize your logs as you usually do in your IDE’s console but with all the extra power that Mate provides.
- Continue with your debugging process. Every time that your log file is updated, Mate will render the new log entries automatically!
We have created a default format to render the logs in Mate. This format is the one that we use in HKLogger, so if you're an iOS dev, we highly encourage you to use HKLogger
in your app.
{TIMESTAMP} - [{SEVERITY}] [{TYPE}] {OPTIONAL METADATA}: {MESSAGE}^^^
TIMESTAMP
The date must follow this format: yyyy-mm-ddThh:MM:ss.SEVERITY
The log severity can be any of these values:INFO
,DEBUG
,WARNING
,ERROR
.TYPE
The log type can be any of these values:ANALYTICS
,NETWORKING
,TRACE
,HEALTH
,DEFAULT
.METADATA
This field is optional, but could be useful if you want to add extra information from the log itself. In case you decide to include it, it has to follow the following format:[THREAD] [FILE] [FUNCTION] [LINE]
.MESSAGE
Include whatever you want regarding the log you've added.
If any of your logs has a NETWORKING
type, you could format the messsage like this, in order to be properly rendered in Mate 🧉:
{
"method": String,
"path": String,
"request": {
"headers": { ... }, // Optional
"body": {... } }, // Optional
"response": {
"status": Integer,
"headers": { ... }, // Optional
"body": { ... } // Optional
}
}
This is all handle for free if you use
HKLogger
Note: It's necessary to add ^^^
at the end of each log, because this string will work as a separator for all the logs within the file uploaded.
2023-01-1T14:00:00 - [INFO] [TRACE] [main] [Logger.swift] [logMessage()] [Line 100]: The app has started^^^
2023-01-1T14:05:00 - [INFO] [ANALYTICS] [<NSThread: 0x6000015d82c0>{number = 10, name = (null)}] [Logger.swift] [logMessage()] [Line 100]: Login button tapped^^^
2023-01-1T14:05:45 - [DEBUG] [NETWORKING]:
{
"method": "GET", "path": "api/test-endpoint", "request": {
"headers": { "Authorization": "dummy token" }
},
"response": {
"statusCode": 404,"body": {"errorCode": "404", "message": "Account not found"}
}
}^^^
2023-01-1T14:07:30 - [WARNING] [HEALTH]: Network request failed with status code 404^^^
You can download an example from Resources/Tests.log
Yes! If you follow the pre-defined format, you're good to go. No matter the language you use.
Yes! You can define your own log format from version 1.1.0
Please submit an issue, fill the required information, and we'll take a look as soon as posible!