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.
Попередження: Цю функцію можна викликати з кількох різних потоків, тому вам може знадобитися виконати власне блокування.