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

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, Unity Player Connection, and manual IP connection.
WorkflowAuto 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.

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.
Database DurabilityAffects .azrecdb recovery behavior only. It does not change which files are written.
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

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 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.
  • Disable regex mode if a regex is too narrow.
  • Use Clear Volatile first, then Clear Everything if 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 Builds is enabled.
  • Try Open Unity Player Connection... first, then Connect 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.