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.
Checking the stable version of the documentation...
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(), не поддерживается, так как это может привести к бесконечной рекурсии. Эти сообщения будут отображаться только в консольном выводе.