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

警告:该函数可能从多个不同的线程调用,你可能需要自行加锁。

注意:由于开销过大,script_backtraces 中不包含捕获变量。如果要获取变量,就需要使用 Engine.capture_script_backtraces()Logger 的虚函数中自行捕获追踪。


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

记录消息时调用。如果 errortrue,则该消息本来是要发往 stderr 的。

警告:该函数可能从多个不同的线程调用,你可能需要自行加锁。