orbis_plugin_api/sdk/
log.rs1pub mod level {
17 pub const ERROR: i32 = 0;
18 pub const WARN: i32 = 1;
19 pub const INFO: i32 = 2;
20 pub const DEBUG: i32 = 3;
21 pub const TRACE: i32 = 4;
22}
23
24#[cfg(target_arch = "wasm32")]
26#[inline]
27pub fn log_at_level(level: i32, message: &str) {
28 unsafe {
29 super::ffi::log(level, message.as_ptr() as i32, message.len() as i32);
30 }
31}
32
33#[cfg(not(target_arch = "wasm32"))]
35#[inline]
36pub fn log_at_level(level: i32, message: &str) {
37 let level_str = match level {
38 0 => "ERROR",
39 1 => "WARN",
40 2 => "INFO",
41 3 => "DEBUG",
42 _ => "TRACE",
43 };
44 eprintln!("[{}] {}", level_str, message);
45}
46
47#[macro_export]
49macro_rules! log_error {
50 ($($arg:tt)*) => {
51 $crate::sdk::log::log_at_level($crate::sdk::log::level::ERROR, &format!($($arg)*))
52 };
53}
54
55#[macro_export]
57macro_rules! log_warn {
58 ($($arg:tt)*) => {
59 $crate::sdk::log::log_at_level($crate::sdk::log::level::WARN, &format!($($arg)*))
60 };
61}
62
63#[macro_export]
65macro_rules! log_info {
66 ($($arg:tt)*) => {
67 $crate::sdk::log::log_at_level($crate::sdk::log::level::INFO, &format!($($arg)*))
68 };
69}
70
71#[macro_export]
73macro_rules! log_debug {
74 ($($arg:tt)*) => {
75 $crate::sdk::log::log_at_level($crate::sdk::log::level::DEBUG, &format!($($arg)*))
76 };
77}
78
79#[macro_export]
81macro_rules! log_trace {
82 ($($arg:tt)*) => {
83 $crate::sdk::log::log_at_level($crate::sdk::log::level::TRACE, &format!($($arg)*))
84 };
85}
86
87pub use log_debug as debug;
89pub use log_error as error;
90pub use log_info as info;
91pub use log_trace as trace;
92pub use log_warn as warn;