Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

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, що спричинив помилку, або rationale.

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

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

Попередження: Цей метод буде викликатися з потоків, відмінних від головного потоку, можливо одночасно, тому вам знадобиться якась безпека потоків у вашій реалізації, наприклад Mutex.

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

Примітка: Реєстрація помилок з цього методу за допомогою таких функцій, як @GlobalScope.push_error() або @GlobalScope.push_warning(), не підтримується, оскільки це може спричинити нескінченну рекурсію. Ці помилки з’являтимуться лише у виведенні консолі.


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

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

Попередження: Цей метод буде викликано з потоків, відмінних від основного потоку, можливо, одночасно, тому вам знадобиться певний захист від потоків у вашій реалізації, наприклад, Mutex.

Примітка: Реєстрація іншого повідомлення з цього методу за допомогою функцій, таких як @GlobalScope.print(), не підтримується, оскільки це може призвести до нескінченної рекурсії. Ці повідомлення відображатимуться лише у виводі консолі.