C# logging: output, errors and log files
Print works without verbose; PushError reports an error without stopping execution.
Output methods
| Call | Purpose |
|---|---|
| ReckfellApi.Print | Ordinary message |
| ReckfellApi.PrintErr | stderr output |
| ReckfellApi.PushWarning | Warning with diagnostic context |
| ReckfellApi.PushError | Error with diagnostic context; not an exception |
Ordinary Print does not require verbose mode. This example explicitly checks OS.IsStdOutVerbose() for additional tracing. Avoid repeating the same message every frame: log state transitions and the data needed to reproduce them.
Check categories
This script intentionally prints a warning and an error prefixed LOG_PROBE. Attach LogProbe.cs to an Entity and run the level. The continued line must follow expected-error: PushError does not replace return, an exception or application shutdown.
LogProbe.cs
using Reckfell;
public partial class LogProbe : Entity
{
public bool AfterError { get; private set; }
public override void _Ready()
{
ReckfellApi.Print("LOG_PROBE standard");
ReckfellApi.PrintErr("LOG_PROBE stderr");
ReckfellApi.PushWarning("LOG_PROBE expected-warning");
ReckfellApi.PushError("LOG_PROBE expected-error");
AfterError = true;
ReckfellApi.Print("LOG_PROBE continued");
if (OS.IsStdOutVerbose()) ReckfellApi.Print("LOG_PROBE verbose");
}
}Preserve a log file
Project settings include debug/file_logging/enable_file_logging, debug/file_logging/log_path and debug/file_logging/max_log_files. The standard log path is user://logs/reckfell.log; account separately for platform availability and settings.
A terminal launch with --log-file sets an explicit file path, overriding ordinary log selection. --verbose enables detailed mode; the example's own verbose marker appears only then. For Windows terminal launches, use the supplied console.exe beside the ordinary executable.
An Output filter is separate from the log file. If a message is hidden, check the panel filter and categories first. Avoid logging passwords, tokens or complete user content when an error code and operation identifier are enough.