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
- Open
Window > Azkar Industries > Azkar Console. - Open Settings.
- Select
Remote Logging. - Enable
Listen for Development Builds. - Open
Remote Connection Options...for listener controls and guidance. EnableAutoconnect Profilerwhen 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
- Start the editor listener before launching the build.
- Launch the development build on the target device.
- Connect through Unity PlayerConnection.
- Reproduce the issue.
- Bookmark important rows.
- Export a filtered view or
.azrecdbdatabase for follow-up.
Export and Archives
Open the logs menu from the toolbar to clear logs, import .azrecdb files, and export logs.
| Format | Use When |
|---|---|
.azrecdb | Someone should import and inspect the session in Azkar Console. |
| CSV | Someone wants spreadsheet-friendly rows. Formula-like text cells receive a leading apostrophe; use JSON or HTML when exact source text is required. |
| JSON | External tooling or structured analysis needs the data. |
| HTML | You 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..ttcis 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.
| 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; databases rotate 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 | Controls .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 Mode | Behavior |
|---|---|
Fast | Lowest overhead. .azrecdb writes stay asynchronous, and recent rows are most at risk in a hard crash. |
Balanced | Default. Asynchronous .azrecdb writes plus periodic page sealing after the configured count or interval. |
Crash Forensics | Most recoverable. Blocks while writing and disk-flushes each log frame/page, so it can slow heavy logging. |
