Skip to content
/ mate Public

Mate is an app for developers created by developers. Mate will help you navigate through your logs and find the information you need to troubleshoot issues and optimize your code

Notifications You must be signed in to change notification settings

Houlak/mate

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Mate 🧉 - Advanced Log Viewer for macOS

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.

download_mac_app_store

Key Features

Intuitive Log Visualization

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.

Powerful Filtering Options

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.

Effortless Log Search

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.

Flexible Log Sorting

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.

Real-time UI Updates

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.

Requirements

MacOS 13.0+ (Ventura).

How does it works?

  • 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!

What format must the logs follow?

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.

Bonus track

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.

Example

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

FAQ

Can I use Mate if I am not an iOS developer?

Yes! If you follow the pre-defined format, you're good to go. No matter the language you use.

Can I use a custom syntax for the log file?

Yes! You can define your own log format from version 1.1.0

Did you find a bug or want to submit a new feature request?

Please submit an issue, fill the required information, and we'll take a look as soon as posible!

About

Mate is an app for developers created by developers. Mate will help you navigate through your logs and find the information you need to troubleshoot issues and optimize your code

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published