Logger

Успадковує: RefCounted < Object

Користувацький реєстратор для отримання повідомлень із внутрішнього потоку помилок/попереджень.

Опис

Користувацький логер для отримання повідомлень із внутрішнього потоку помилок/попереджень. Логери реєструються через OS.add_logger().

Методи

void

_log_error(function: String, file: String, line: int, code: String, rationale: String, editor_notify: bool, error_type: int, script_backtraces: Array[ScriptBacktrace]) virtual

void

_log_message(message: String, error: bool) virtual


Переліки

enum ErrorType: 🔗

ErrorType ERROR_TYPE_ERROR = 0

Отримане повідомлення є помилкою.

ErrorType ERROR_TYPE_WARNING = 1

Отримане повідомлення є попередженням.

ErrorType ERROR_TYPE_SCRIPT = 2

Отримане повідомлення є помилкою скрипта.

ErrorType ERROR_TYPE_SHADER = 3

Отримане повідомлення є помилкою шейдера.


Описи методів

void _log_error(function: String, file: String, line: int, code: String, rationale: String, editor_notify: bool, error_type: int, script_backtraces: Array[ScriptBacktrace]) virtual 🔗

Викликається, коли реєструється помилка. Помилка містить function, file та line, з яких вона виникла, а також або code, що спричинив помилку, або reasoning.

Тип помилки, що надається error_type, описано у переліку ErrorType.

Крім того, script_backtraces надає зворотні трасування для кожної з мов сценаріїв. За замовчуванням вони міститимуть стекові фрейми лише в збірках редактора та налагоджувальних збірках. Щоб увімкнути їх також для релізних збірок, потрібно ввімкнути ProjectSettings.debug/settings/gdscript/always_track_call_stacks.

Попередження: Цю функцію можна викликати з кількох різних потоків, тому вам може знадобитися виконати власне блокування.

Примітка: script_backtraces не міститиме жодних захоплених змінних через свою надмірно високу вартість. Щоб отримати їх, вам потрібно буде самостійно захопити зворотні трасування з віртуальних методів Logger, використовуючи Engine.capture_script_backtraces().


void _log_message(message: String, error: bool) virtual 🔗

Викликається, коли реєструється повідомлення. Якщо error має значення true, то це повідомлення мало бути надіслане до stderr.

Попередження: Цю функцію можна викликати з кількох різних потоків, тому вам може знадобитися виконати власне блокування.