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 🔗
Called when an error is logged. The error provides the function, file, and line that it originated from, as well as either the code that generated the error or a rationale.
The type of error provided by error_type is described in the ErrorType enumeration.
Additionally, script_backtraces provides backtraces for each of the script languages. These will only contain stack frames in editor builds and debug builds by default. To enable them for release builds as well, you need to enable ProjectSettings.debug/settings/gdscript/always_track_call_stacks.
Warning: This method will be called from threads other than the main thread, possibly at the same time, so you will need to have some kind of thread-safety in your implementation of it, like a Mutex.
Note: script_backtraces will not contain any captured variables, due to its prohibitively high cost. To get those, you will need to capture the backtraces yourself, from within the Logger virtual methods, using Engine.capture_script_backtraces().
Note: Logging errors from this method using functions like @GlobalScope.push_error() or @GlobalScope.push_warning() is not supported, as it could cause infinite recursion. These errors will only show up in the console output.
void _log_message(message: String, error: bool) virtual 🔗
Викликається, коли реєструється повідомлення. Якщо error має значення true, то це повідомлення мало бути надіслане до stderr.
Попередження: Цей метод буде викликано з потоків, відмінних від основного потоку, можливо, одночасно, тому вам знадобиться певний захист від потоків у вашій реалізації, наприклад, Mutex.
Примітка: Реєстрація іншого повідомлення з цього методу за допомогою функцій, таких як @GlobalScope.print(), не підтримується, оскільки це може призвести до нескінченної рекурсії. Ці повідомлення відображатимуться лише у виводі консолі.