Logs & diagnostics

Where records are written, and what to attach when reporting a problem.

The Console

The Console panel streams messages as you work, each with a severity and a time. The time is measured from launch, not from the clock, so 3.472s is three and a half seconds after startup.

Four toolbar buttons filter the feed by severity: Debug, Info, Warn and Error, each showing how many lines it is holding. Clear empties the feed. There is no text search, and a line carries no node name or category, so a cook error tells you the reason without telling you which node produced it. The red border in the graph is what identifies the node.

The feed carries the whole log stream at Info and above, from every thread rather than the cook alone, which is why a file load or an audio device problem shows up here. Warn and Error lines tint their whole row so they read at a glance.

Log files

A rolling log is written to disk, so a record survives closing the app or a crash. It holds more detail than the Console. A new file is started every hour and the last 24 are kept.

Crash reports are written to a crashes/ folder beside that one. After a session that did not shut down cleanly, the Console carries a warning on the next launch naming the crash-report path.

Turning up a stream

Most of what the engine can report is quiet by default, because the per-cook and per-frame streams flood the log during ordinary work and bury the line you want. Each one has a name, and you raise them by name.

frame_perf is the exception and stays on. It says nothing on a healthy frame and prints one breakdown line when a frame misses 30 fps, which is the report behind "the app feels laggy".

On the desktop, set NODE_TOOL_LOG before launching, for example NODE_TOOL_LOG=info,cook_breakdown=debug,gpu_op_timing=debug. In the browser the same words go in the page URL as ?nt_log=info,cook_breakdown=debug, and you can retarget a running page from the browser console with set_log_filter("info,graph_prep=info"). A filter that does not parse is ignored, and the app says so rather than falling silent.

Reporting a problem

  1. Note what you did, what you expected, and what happened instead.

  2. Choose Help > Report Bug…, which assembles a redacted diagnostic bundle including the current and recent crash reports.

  3. Copy any red Error text from the Console.

  4. Include the project, or a trimmed-down version that still shows the problem.

Slowness against failure

For slowness rather than failure, use the Performance panel, which shows frame time and memory pressure.

See also