Reference
Settings and Troubleshooting
Tune readability, review integration controls, check shortcuts, and resolve common empty-view or remote issues.
- Theme Maker
- Settings reference
- Stack trace controls
- Saved log durability
- Troubleshooting
Theme Maker
Theme controls live in Settings > Appearance. Use Appearance for quick theme switching, or open Theme Maker to edit, duplicate, rename, export, or import themes with a live preview.
- Improve contrast for long debugging sessions.
- Create team-specific visual defaults.
- Make severity colors easier to scan.
- Tune highlight stripe width and opacity for the amount of visual emphasis your team wants.
- Export a reusable Azkar Console theme asset.
Theme changes affect presentation only. They do not alter captured log data or exported records.
Why themes are data-backed
Azkar Console is built with UI Toolkit, but its themes are stored as serializable theme data rather than as one USS or TSS asset per theme. This is intentional: it lets Theme Maker create and preview themes, store them per editor user, move them through theme and profile import/export, and apply the same values to dynamic visuals such as log levels, syntax highlighting, bookmarks, categories, and highlight rules.
USS and TSS are useful for reusable static styling, but they are not the only valid way to theme a UI Toolkit editor extension. Azkar Console's data-backed approach keeps editable theme values and dynamic log rendering under one source of truth.
Settings Reference
| Section | What It Controls |
|---|---|
| Import / Export | Portable profile import/export for settings, themes, and key binds. |
| Appearance | Theme switching, Theme Maker, and highlight presentation controls such as stripe width and opacity. |
| Log Details & Readability | Ordinary log stack capture, Demystify Stack Trace, stack trace syntax highlighting, and source code syntax highlighting. |
| Unity Integration | Capture Unity Logs and Forward to Unity Console. |
| Remote Logging | Listen for Development Builds, Unity Player Connection, and manual IP connection. |
| Workflow | Auto Scroll, Pause on Errors, Collapse, Clear Filters on Play Mode, Message Lines, and Saved Logs. |
| Shortcuts | Review, rebind, import, export, or reset keyboard bindings. |
| Diagnostics | Advanced troubleshooting tools. |
The full stack capture setting path is Window > Azkar Industries > Azkar Console > Settings > Log Details & Readability > Stack Traces > Log Stack Trace Capture.
| Option | Behavior |
|---|---|
File and line | Default for ordinary AzCon.Log. Captures the callsite without a full stack walk. |
Full stack trace | Makes ordinary AzCon.Log capture a full call stack. |
Related presentation settings:
Demystify Stack Traceformats full stacks into a cleaner form. It does not decide whether stacks are collected.Stack Trace Syntax Highlightingcolors stack trace frames in expanded log details.Source Code Syntax Highlightingcolors C# source in the call-chain preview.
FAQ
Why does AzCon.Log only show file and line by default?
Because file-and-line capture avoids walking and storing a full stack for each ordinary log. Full stack traces are available through AzCon.Debug, warnings, errors, or by changing Log Stack Trace Capture in Settings.
Does Azkar Console write every log if my game emits thousands of logs per frame?
Not necessarily. The default asynchronous file and database sinks use bounded queues, which limit backlog growth rather than waiting indefinitely for storage. If a sink cannot keep up, it may drop older queued entries and Azkar records the loss. Logging still consumes CPU and memory, and synchronous custom sinks or Crash Forensics durability can block.
If you need the strongest database recovery behavior, enable Crash Forensics durability. That mode can block while writing, so it is best for forensic sessions rather than normal play.
Saved Logs
Saved log behavior is configured at Window > Azkar Industries > Azkar Console > Settings > Workflow > Saved Logs.
Editor sessions and Development Builds default to Both formats. Non-development players default to Disabled until the game opts in with LogConfig.EnableSavedLogPersistence(...).
| Control | What It Does |
|---|---|
Saved Log Persistence | Chooses Disabled, Text (.log), Azkar Database (.azrecdb), or Both. |
Play Mode Session Files | Controls how many saved play mode captures Azkar keeps per saved format in the PlayMode subfolder. Default is 10; 0 keeps every play mode capture. |
Editor Session Files | Controls how many whole-editor-session captures Azkar keeps per saved format in the Editor subfolder. Default is 5; this is on by default so users have a longer support and post-crash review trail. |
Database Durability | Affects .azrecdb recovery behavior only. It does not change which files are written. |
| Mode | Tradeoff |
|---|---|
Fast | Lowest overhead; asynchronous .azrecdb writes leave recent rows most at risk in a hard crash. |
Balanced | Default; asynchronous .azrecdb writes with periodic page sealing after the configured count or interval. |
Crash Forensics | Most recoverable; blocks while writing and disk-flushes each log frame/page, which can slow heavy logging. |
Log Storms, Backpressure, and Durability
In normal saved-log modes, file and database writing run asynchronously through bounded writer queues. The bounds limit queued backlog growth and prevent those sinks from waiting indefinitely for storage. When a queue cannot keep up, the sink may drop older queued entries and record the drop count.
This does not make logging free or guarantee a stable frame rate during a log storm. Message construction, capture, filtering, custom sinks, and queue coordination still consume resources. Crash Forensics durability writes synchronously and can block. Test representative builds and logging volumes for the project's performance requirements.
This is intentional. Most log storms come from runaway loops, exception spam, or overly verbose diagnostics. In those cases, preserving frame time and editor stability is usually more valuable than writing every repeated line.
For forensic runs where database recovery matters more than throughput, use Crash Forensics durability. This mode writes synchronously and performs stronger disk flushing, so it can slow heavy logging but gives the best recovery behavior.
Common Shortcuts
| Shortcut | Action |
|---|---|
Action+F | Focus Search |
Action+, | Open Settings |
Action+K | Open Filter Builder |
B | Toggle Bookmark |
Shift+B | Toggle Bookmark Shelf |
[ / ] | Jump to previous or next visible bookmark. |
Action+Up / Action+Down | Jump to oldest or newest visible log. |
Action+Shift+K | Clear volatile filters. |
Action+Alt+K | Clear all filters, including persistent filters. |
Action+Shift+Delete | Clear captured logs. |
F / C / E | Toggle Follow, Collapse, or Error Pause. |
Esc | Close current UI. |
Action means Command on macOS and Control on Windows/Linux.
Compatibility
Supports Unity 6 (6000.0 or newer).
Unity 6.0–6.3 identify Unity object contexts with instance IDs. Unity 6.4+ also exposes entity IDs. Azkar Console bridges both through its typed LogContextId, preserving instance IDs when available for editor ping and selection and falling back to entity IDs when required. No version-specific setup is needed.
Troubleshooting
The Console Is Empty
- Confirm the window is open from
Window > Azkar Industries > Azkar Console. - Use
Generate demo logsto confirm the UI is working. - Check filters and choose
Clear Everything. - If you expect Unity logs, confirm Settings >
Unity Integration>Capture Unity Logsis enabled. - Confirm your scripts call AzCon or Unity logging APIs that are being captured.
Logs Exist, But You Cannot See Them
- Clear search text.
- Disable regex mode if a regex is too narrow.
- Use
Clear Volatilefirst, thenClear Everythingif needed. - Check severity controls.
- Check whether a saved preset or persistent filter is active.
A Captured Unity Warning Cannot Ping Its GameObject
Unity's public log callback does not include the original context object. In supported editor states, Azkar Console may recover a live instance ID from Unity's native console data and show Ping Context Object, but this is not guaranteed. Open Unity's Console, locate the original warning row, and use that row when you need to ping or select the associated GameObject. Logs emitted through AzCon can carry an explicit Unity object context.
Remote Build Does Not Connect
- Confirm the build is a Development Build.
- Confirm Settings >
Remote Logging>Listen for Development Buildsis enabled. - Try
Open Unity Player Connection...first, thenConnect by IP...if discovery is unreliable. - Make sure the editor and device can reach each other on the local network.
- Reconnect after relaunching the build if the player was already running before the listener started.
Exported Logs Are Missing Rows
Check whether you exported Filtered instead of All. Use Filtered when the visible view is intentional. Use All when you need the full session.
Bookmarks Are Visible But Live Rows Are Gone
Bookmarks can survive play mode transitions and clearing live logs. Use them as saved references to important rows, or export/import bookmarks separately from .azrecdb databases.
