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 🔗
记录消息时调用。如果 error 为 true,则该消息本来是要发往 stderr 的。
警告:该函数可能从多个不同的线程调用,你可能需要自行加锁。