GatoCon – Runtime Debug Console & Structured Logging


Import the package, press Play, and press F9 to show the overlay UI. ... Logs that remember data ... The dump files are clean, readable, and contain lots of useful information, such as delta- ...


by GatoLabs


Price History +

A runtime dev console and logging solution Structured logging, filters, search, log dumping and an overlay that works in real builds, not just the editor.

Requires Unity 6000.0 or newer.

The overlay UI uses Unity's UI Toolkit system.


Architecture

  • Fixed namespace - GatoLabs.GatoCon
  • A static API for everything - GatoCon.Warn(...)
  • A fixed-size underlying ring buffer to avoid allocations and keep a constant memory usage for LogEntry references. The size is configurable in Settings, and when the size limit is hit, older logs are evicted (and a LogEntryDropped event is fired)
  • Structured logs are cached and parsed once
  • Thread-safety

Compatibility

  • Render pipelines: Built-in, URP and HDRP - GatoCon uses no render pipeline features
  • Input System package: optional. Provides the F9/F10 hotkeys, without it the console is toggled from code
  • Dev-level logs are stripped from release builds automatically
  • Settings at Project Settings -> GatoCon, or Tools -> GatoCon -> Settings
  • Settings live in a ScriptableObject, editable in the inspector or through the settings page

Output

  • Plain-text log dumps written to Application.persistentDataPath, off the main thread
  • Automatic dump on application quit
  • Dumps include device info, time deltas, levels, sources, categories, template properties, attachments and call sites

Not included

  • No command execution. GatoCon is a logging solution, not a command console.

A runtime dev console, which you can open in an actual game build, not just the editor.


Setup is seamless!

You don't have to set up anything. Import the package, press Play, and press F9 to show the overlay UI. For customization, go to Project Settings -> GatoCon OR Tools -> GatoCon -> Settings.


Logs that remember data

GatoCon.Info( "Player {Name} took {Damage} damage", player.name, damage );

Reads like interpolation, but GatoCon also remembers Name was Gato and Damage was 34. Search Name="Gato" and get every log about that player, from every system that used the field.


The logging API also provides you with five different log levels, categories, structured logging, thread-safety and attachment support among other features.


Advanced Categorizing

Logs can have a level, a category and a source. Categories are user-defined and immensely help with filtering between logs emitted from different subsystems within your project. A log's source can be one of the following: Internal (from GatoCon itself), External (captured from Unity's Debug.Log API), Normal (emitted through the GatoCon API) and Dev (Marked as development-only - these logs will not be available in production builds of your project).


Log Dumping

GatoCon allows the user to manually create pretty and readable log dumps straight from the overlay UI. It also auto-dumps all the logs whenever Unity exits, ensuring that logs from the last session can always be retrieved. The dump files are clean, readable, and contain lots of useful information, such as delta-time between logs, the originating category, possible attachments that have been attached to the log entry, the log level, etc.


A console you can actually work in

Filter by level, source or category from the sidebar - filters stack. Search messages or template fields. Pause to read something without it scrolling away. Click any row for the full entry, stack trace included, with a copy button that formats it for a bug report. Minimize it and a slim bar keeps counting errors while you play.


Remarks

Unity 6000.0+, BRP, URP and HDRP support. GatoCon uses the InputSystem package to bind the F9 and F10 keys to console window manipulation functions (such as opening and minimizing the overlay UI). Without InputSystem, the overlay's visibility has to be toggled manually from code through GatoCon's API. Currently only PC support is guaranteed, mobile or console support has not yet been tested.


GatoCon does not include a command line. GatoCon only provides a logging API and an overlay UI (Log Output Window) that is available in game builds as well, not just the editor.