Reference
Settings and Troubleshooting
Tune readability, review integration controls, check shortcuts, and resolve common empty-view or remote issues.
- Theme Maker
- Settings reference
- Log row layout
- 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.
The preview uses synthetic logs rendered by the same production console components used by the main window. Use its scenario controls to inspect the parts of the console affected by the draft theme:
| Scenario | What It Shows |
|---|---|
Console | The normal toolbar, status, bookmark shelf, columns, and collapsed log rows. |
Details | A real expanded log with its message, metadata, stack, exception, source actions, and detail typography. |
Trace | An expanded trace log and the production trace analyzer. |
Source | The production call-chain source renderer with syntax colors, focused and callsite lines, search matches, and code typography. |
States | Normal, zebra, hover, press, selected, search-match, and multi-highlight row treatments. |
Auto, Compact, Narrow, and Tiny reproduce the console's responsive widths. Changing an editor tab automatically selects its most useful scenario: Text & Rows and Typography show Details, Syntax shows Source, Interaction shows States, and Backgrounds or Accents & Levels show Console. A scenario selected manually remains active until another editor tab is chosen. Clicking a region in the preview jumps to the related theme setting without replacing the scenario being inspected.
- 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 and review Unity PlayerConnection guidance. |
| Workflow | Tool Window Presentation, Log Row Layout, 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. |
Reset All Preferences is the confirmation-gated product-wide reset. It stops the current remote listener; removes the explicit allowlist of Azkar-owned settings, custom-theme, shortcut, UI shelf/layout, tool-window, editor filter-preset/recovery-backup, and runtime filter-preset preferences; and updates the current in-memory UI immediately. It does not scan for matching prefixes, so unrelated EditorPrefs and PlayerPrefs survive. File-backed bookmarks, logs/databases, imported fonts, and manual exports also survive and must be removed separately when desired.
Log row layout
The setting path is Window > Azkar Industries > Azkar Console > Settings > Workflow > Log Row Layout. Level, Frame, Time, Alias, and Category can each be hidden; Message remains checked and disabled so every visible row retains its primary content. Right-click or Control-click anywhere on the column header for the same choices, plus Message Only and Show All Columns.
Explicit column choices persist with the console layout and are included in portable settings profiles, while drag-resized column widths remain local to the Unity workspace. Responsive layouts may temporarily hide additional metadata at narrow widths without unchecking or changing the stored choices. Re-expanding the console restores any configured columns and their previous widths.
Reset Section in Workflow restores all columns to visible while preserving their stored widths. Reset All Preferences restores both the default visibility and the default column widths.
Tool-window presentation
The setting path is Window > Azkar Industries > Azkar Console > Settings > Workflow > Tool Windows > Tool Window Presentation.
| Option | Behavior |
|---|---|
Separate Utility Windows (Current Behavior) | Default. Opens Filter Builder, source preview, and Trace occurrences in their compatible utility windows. |
Dockable Workbench (Recommended) | Routes those commands into the Workbench's Filters, Source, and Occurrences roles while adding a multi-selection Details role. |
Changing the option affects future commands only; it does not close, move, or redock windows already open. Tool-window presentation and Workbench Details, Message, and Stack Trace choices are editor-user preferences. Workflow reset and global Settings reset restore their defaults. Portable profiles intentionally exclude them. See Dockable Workbench for the full interaction and lifetime contract.
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. |
Text Segment MiB / Database Segment MiB | Caps each segment at exact stored bytes. Defaults are 32 MiB for text and 64 MiB for databases; database rotation occurs only between complete committed pages. |
Combined Session MiB | Applies one shared text-plus-database budget. Default is 128 MiB. |
Editor Folder MiB / PlayMode Folder MiB | Caps recognized automatic logs by actual bytes. Defaults are 512 MiB / 256 MiB. |
Maximum Age Days | Prunes inactive recognized files older than 30 days first. |
Free-Space Reserve MiB / % | Preserves the greater of 256 MiB or 5% of the volume by default. |
Database Durability | Affects .azrecdb recovery behavior only. It does not change which files are written. |
Missing and legacy zero byte settings migrate to these finite defaults; a saved-file count of 0 does not disable byte, age, or free-space governance. Cleanup applies age, per-format count, then actual bytes while protecting active and unrelated files. If low space, quota exhaustion, or a disk-write failure remains after one safe cleanup, the affected bounded sink counts dropped records, coalesces warnings, retries slowly, and resumes in a fresh segment when capacity returns.
| 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
Azkar Console works on Unity 6 (6000.0 or newer). The distributed build's Technical Details identify the exact Unity patch and Burst/Collections combinations qualified for that release.
Explicit Unity object contexts supplied to AzCon use the version-neutral typed LogContextId and Unity's supported public object APIs. Editors exposing the public entity-identity API prefer it; other supported editors use the public instance-ID fallback. For worker-thread traces, captureAzCon.GetContextId(object) on Unity's main thread and pass it to the typed TraceContext overload. Unity-originated callback messages do not include the original context object. Review the Unity API compliance disclosure before relying on native Console behavior.
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.
- If regex mode shows an error, correct the pattern or disable regex mode. Invalid, over-limit, and timed-out expressions remain faulted and produce no literal or partial-result fallback until the pattern or mode changes.
- Use
Clear Volatilefirst, thenClear Everythingif needed. - Check severity controls.
- Check whether a saved preset or persistent filter is active.
The Workbench Did Not Switch When You Selected a Log
That is intentional. Passive selection updates Workbench data without opening the window, changing its active role, selecting its Unity dock tab, or taking focus from the console. Click a Workbench role manually, or use Preview Source, View Occurrences, or Open Filter Builder when you want explicit navigation. If Source or Occurrences keeps showing an older subject, enable Follow Selection; turning it off pins the current subject. Enabling Source Follow also releases an archived bookmark preview or Filter Builder source peek.
Workbench Content Cleared While the Window Stayed Open
The Workbench is a live projection of retained logs, not an archive. Clear, retention eviction, database replacement or unmount, and closing the owning console invalidate matching Details cards, Source subjects, Occurrence analysis, pins, and history. The window, current role, Filters, and personal display preferences remain. Filtering a row out of view alone does not delete it.
A Captured Unity Warning Cannot Ping Its GameObject
Unity's public log callback does not include the original context object. Open Unity's Console, locate the original warning row, and use that row when you need native context behavior. Logs emitted through AzCon can carry an explicit Unity object context and expose Ping Context Object while that object remains live.
This is an intentional compliance boundary rather than a failed lookup. Recovering the private native row and its context would require Unity Editor internal APIs prohibited by Asset Store Submission Guideline 2.5.g. See the complete Unity API compliance disclosure.
Remote Build Does Not Connect
- Confirm the build is a Development Build.
- Confirm Settings >
Remote Logging>Listen for Development Buildsis enabled. - Enable
Autoconnect Profilerfor the Development Build, or select the running player from Unity's Profiler connection menu. - 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.
