Logger

Hereda: RefCounted < Object

Logger personalizado para recibir mensajes del flujo interno de errores/advertencias.

Descripción

Logger personalizado para recibir mensajes del flujo interno de errores/advertencias. Los loggers se registran a través de OS.add_logger().

Métodos

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


Enumeraciones

enum ErrorType: 🔗

ErrorType ERROR_TYPE_ERROR = 0

El mensaje recibido es un error.

ErrorType ERROR_TYPE_WARNING = 1

El mensaje recibido es una advertencia.

ErrorType ERROR_TYPE_SCRIPT = 2

El mensaje recibido es un error de script.

ErrorType ERROR_TYPE_SHADER = 3

El mensaje recibido es un error de shader.


Descripciones de Métodos

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

Llamado cuando se registra un error. El error proporciona la function, el file y la line de donde se originó, así como el code que generó el error o una rationale.

El tipo de error proporcionado por error_type se describe en la enumeración ErrorType.

Además, script_backtraces proporciona rastreos de pila para cada uno de los lenguajes de script. Estos solo contendrán marcos de pila en las compilaciones del editor y las compilaciones de depuración por defecto. Para habilitarlos también para las compilaciones de lanzamiento, debes habilitar ProjectSettings.debug/settings/gdscript/always_track_call_stacks.

Advertencia: Este método será llamado desde hilos distintos al hilo principal, posiblemente al mismo tiempo, por lo que necesitarás tener algún tipo de seguridad de hilos en tu implementación, como un Mutex.

Nota: script_backtraces no contendrá ninguna variable capturada, debido a su costo prohibitivo. Para obtenerlas, deberás capturar los rastreos de pila tú mismo, desde dentro de los métodos virtuales de Logger, usando Engine.capture_script_backtraces().

Nota: No se admite el registro de errores desde este método usando funciones como @GlobalScope.push_error() o @GlobalScope.push_warning(), ya que podría causar una recursión infinita. Estos errores solo aparecerán en la salida de la consola.


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

Llamado cuando se registra un mensaje. Si error es true, entonces este mensaje estaba destinado a ser enviado a stderr.

Advertencia: Este método será llamado desde hilos distintos al hilo principal, posiblemente al mismo tiempo, por lo que necesitarás tener algún tipo de seguridad de hilos en tu implementación, como un Mutex.

Nota: No se admite el registro de otro mensaje desde este método usando funciones como @GlobalScope.print(), ya que podría causar una recursión infinita. Estos mensajes solo aparecerán en la salida de la consola.