Логи C#: вывод, ошибки и файл журнала
Print работает без verbose; PushError сообщает об ошибке, но не останавливает выполнение.
Способ вывода
| Вызов | Назначение |
|---|---|
| ReckfellApi.Print | Обычное сообщение |
| ReckfellApi.PrintErr | Вывод в stderr |
| ReckfellApi.PushWarning | Предупреждение с диагностическим контекстом |
| ReckfellApi.PushError | Ошибка с диагностическим контекстом; не исключение |
Обычный Print не требует verbose. Для дополнительной трассировки пример сам проверяет OS.IsStdOutVerbose(). Не печатайте одно и то же каждый кадр: фиксируйте переход состояния и данные, необходимые для воспроизведения.
Проверить категории
Этот скрипт намеренно печатает предупреждение и ошибку с префиксом LOG_PROBE. Прикрепите LogProbe.cs к Entity и запустите уровень. После expected-error должна появиться строка continued: PushError не заменяет return, исключение или завершение приложения.
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");
}
}Сохранить журнал
В настройках проекта используются debug/file_logging/enable_file_logging, debug/file_logging/log_path и debug/file_logging/max_log_files. Стандартный путь журнала — user://logs/reckfell.log; доступность и настройки платформы учитывайте отдельно.
При запуске из терминала --log-file задаёт явный путь файла и переопределяет обычный выбор журнала. --verbose включает подробный режим; собственный verbose-маркер примера появляется только при нём. Если запускаете Windows-сборку из терминала, используйте поставляемый console.exe рядом с обычным исполняемым файлом.
Не путайте файл журнала с фильтром Output. Если сообщение скрыто в панели, сначала проверьте фильтр и категории. Не добавляйте в журнал пароли, токены и полный пользовательский контент, когда достаточно кода ошибки и идентификатора операции.