DocumentationAzkar ConsoleRemote Logging and Archives

Remote workflows

Remote Logging and Archives

Stream logs from supported development builds and export sessions in the right format for the handoff.

  • Editor setup
  • Development-build setup
  • Recommended workflow
  • Export formats
  • Saved log database settings

Remote Logging

Remote Logging streams Azkar Console logs from supported Development Builds back into the editor. Development Builds enable player streaming by default. The remote transport does not start in non-development players, even if the saved setting is enabled.

Editor Setup

  1. Open Window > Azkar Industries > Azkar Console.
  2. Open Settings.
  3. Select Remote Logging.
  4. Enable Listen for Development Builds.
  5. Open Remote Connection Options... for listener controls and guidance. Enable Autoconnect Profiler when building, or select the running player from Unity's Profiler connection menu.

The toolbar and status area show remote state as the editor listens and devices connect.

Build Setup

Development Builds enable Azkar Console player streaming by default. Set LogConfig.RemoteLoggingEnabled before remote bootstrap only when the project needs to override that default. Set a trimmed, non-empty LogConfig.RemoteClientLabel before bootstrap when a stable player identity is useful; a blank label falls back to SystemInfo.deviceName. No extra logging API is required beyond using Azkar Console logging in the project. Non-development players never start the remote transport; use saved-log persistence or a project-owned transport when release-build diagnostics are required.

Remote streaming and saved-log persistence are independent. Enabling one does not enable the other.

Recommended Remote Workflow

  1. Start the editor listener before launching the build.
  2. Launch the development build on the target device.
  3. Connect through Unity PlayerConnection.
  4. Reproduce the issue.
  5. Bookmark important rows.
  6. Export a filtered view or .azrecdb database for follow-up.

Export and Archives

Open the logs menu from the toolbar to clear logs, import .azrecdb files, and export logs.

FormatUse When
.azrecdbSomeone should import and inspect the session in Azkar Console.
CSVSomeone wants spreadsheet-friendly rows. Formula-like text cells receive a leading apostrophe; use JSON or HTML when exact source text is required.
JSONExternal tooling or structured analysis needs the data.
HTMLYou want a readable standalone snapshot.

Export Scope

Use Filtered export for the rows currently visible after filters. Use All export for the full underlying log store, ignoring current filters.

Imported .azrecdb databases can be searched, filtered, expanded, and inspected like live logs.

When a selected .azrecdb batch is ready, Replace Console clears current live rows and earlier mounts only after the entire batch validates. Append Logs preserves current live rows and earlier mounts, then adds the validated batch.

Import Behavior and Limits

Profile and bookmark files are synchronously prevalidated under finite byte, item, and string limits and are applied only after complete validation; their interactive import dialogs do not expose progress or cancellation during validation. Profile import atomically applies only the selected Settings, Theme, and Key Binds sections. Bookmark import merges new keys and skips existing keys after full validation.

.azrecdb imports run off the editor UI thread, report progress, support cancellation, and commit a selected multi-file batch atomically. A malformed, truncated, over-limit, timed-out, changed-during-read, or canceled file leaves the previous console and mounted databases unchanged.

  • Profile bundles: 64 entries, 4 MiB profile JSON, 64 MiB per bundled .ttf/.otf, and 128 MiB expanded total. .ttc is unsupported in 1.0.
  • Bookmarks: 16 MiB, 10,000 entries, and 32 MiB decoded strings.
  • .azrecdb: 2 GiB, 1,000,000 rows, 4,096 pages, 8 MiB compressed and expanded per page, and a 120-second operation budget.

Parsing uses strict UTF-8, bounded decompression, finite nested/string/item limits, checksums, framing, source-mutation checks, and bounded corruption recovery. Mounted database index and payload caches are each capped at 32 MiB, with at most 16 payload pages cached.

JSON is an export format; Azkar Console does not expose a customer JSON-log import workflow.

Saved Log Database Settings

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 and create no saved-log directory, file, or writer thread until the game explicitly calls LogConfig.EnableSavedLogPersistence(...). Repeating the active mode is idempotent; LogConfig.DisableSavedLogPersistence() flushes and closes the built-in persistence sinks.

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; databases rotate 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 DurabilityControls .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.

Durability ModeBehavior
FastLowest overhead. .azrecdb writes stay asynchronous, and recent rows are most at risk in a hard crash.
BalancedDefault. Asynchronous .azrecdb writes plus periodic page sealing after the configured count or interval.
Crash ForensicsMost recoverable. Blocks while writing and disk-flushes each log frame/page, so it can slow heavy logging.