DocumentationAzkar ConsoleSettings and Troubleshooting

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:

ScenarioWhat It Shows
ConsoleThe normal toolbar, status, bookmark shelf, columns, and collapsed log rows.
DetailsA real expanded log with its message, metadata, stack, exception, source actions, and detail typography.
TraceAn expanded trace log and the production trace analyzer.
SourceThe production call-chain source renderer with syntax colors, focused and callsite lines, search matches, and code typography.
StatesNormal, 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

SectionWhat It Controls
Import / ExportPortable profile import/export for settings, themes, and key binds.
AppearanceTheme switching, Theme Maker, and highlight presentation controls such as stripe width and opacity.
Log Details & ReadabilityOrdinary log stack capture, Demystify Stack Trace, stack trace syntax highlighting, and source code syntax highlighting.
Unity IntegrationCapture Unity Logs and Forward to Unity Console.
Remote LoggingListen for Development Builds and review Unity PlayerConnection guidance.
WorkflowTool Window Presentation, Log Row Layout, Auto Scroll, Pause on Errors, Collapse, Clear Filters on Play Mode, Message Lines, and Saved Logs.
ShortcutsReview, rebind, import, export, or reset keyboard bindings.
DiagnosticsAdvanced 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.

OptionBehavior
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.

OptionBehavior
File and lineDefault for ordinary AzCon.Log. Captures the callsite without a full stack walk.
Full stack traceMakes ordinary AzCon.Log capture a full call stack.

Related presentation settings:

  • Demystify Stack Trace formats full stacks into a cleaner form. It does not decide whether stacks are collected.
  • Stack Trace Syntax Highlighting colors stack trace frames in expanded log details.
  • Source Code Syntax Highlighting colors 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(...).

ControlWhat It Does
Saved Log PersistenceChooses Disabled, Text (.log), Azkar Database (.azrecdb), or Both.
Play Mode Session FilesControls 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 FilesControls 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 MiBCaps 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 MiBApplies one shared text-plus-database budget. Default is 128 MiB.
Editor Folder MiB / PlayMode Folder MiBCaps recognized automatic logs by actual bytes. Defaults are 512 MiB / 256 MiB.
Maximum Age DaysPrunes 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 DurabilityAffects .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.

ModeTradeoff
FastLowest overhead; asynchronous .azrecdb writes leave recent rows most at risk in a hard crash.
BalancedDefault; asynchronous .azrecdb writes with periodic page sealing after the configured count or interval.
Crash ForensicsMost 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

ShortcutAction
Action+FFocus Search
Action+,Open Settings
Action+KOpen Filter Builder
BToggle Bookmark
Shift+BToggle Bookmark Shelf
[ / ]Jump to previous or next visible bookmark.
Action+Up / Action+DownJump to oldest or newest visible log.
Action+Shift+KClear volatile filters.
Action+Alt+KClear all filters, including persistent filters.
Action+Shift+DeleteClear captured logs.
F / C / EToggle Follow, Collapse, or Error Pause.
EscClose 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 logs to confirm the UI is working.
  • Check filters and choose Clear Everything.
  • If you expect Unity logs, confirm Settings > Unity Integration > Capture Unity Logs is 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 Volatile first, then Clear Everything if 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 Builds is enabled.
  • Enable Autoconnect Profiler for 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.