Latest commit b6ba616
日志/控制台消息
运行 Bevy 项目时控制台会输出一些信息,例如:
2022-06-12T13:28:25.445644Z WARN wgpu_hal::vulkan::instance: Unable to find layer: VK_LAYER_KHRONOS_validation
2022-06-12T13:28:25.565795Z INFO bevy_render::renderer: AdapterInfo { name: "AMD Radeon RX 6600 XT", vendor: 4098, device: 29695, device_type: DiscreteGpu, backend: Vulkan }
2022-06-12T13:28:25.565795Z INFO mygame: Entered new map area.
日志信息有几个来源:Bevy 本身、依赖(例如 wgpu)、代码(例如调用了 info!())。
Bevy 提供了一个日志记录框架,该框架比简单地使用 Rust 的 println/eprintln 要先进得多。日志消息可以具有元数据,例如警告级别、时间戳、Rust 模块来源。元数据与消息的内容会一起打印出来。
级别
级别区分消息的重要程度,并允许过滤消息。
级别有:
error:报错了,程序无法运行warn:发生了不正常的事,程序可以运行info:一般的消息debug:用于开发过程的调试trace:用于非常冗长的调试数据,例如转储值
打印自定义日志消息
要显示消息,只需使用以消息级别命名的宏:
#![allow(unused)] fn main() { error!("Unknown condition!"); warn!("Something unusual happened!"); info!("Entered game level: {}", level_id); debug!("x: {}, state: {:?}", x, state); trace!("entity transform: {:?}", transform); }
过滤信息
用 LogSettings(配置类资源)来控制怎样过滤消息。
#![allow(unused)] fn main() { app.insert_resource(LogSettings { filter: "info,wgpu_core=warn,wgpu_hal=warn,mygame=debug".into(), level: bevy::log::level::DEBUG, }); }
todo:看不懂、未验证