diff --git a/pros/Cargo.toml b/pros/Cargo.toml index 0c1032fc..d2384eca 100644 --- a/pros/Cargo.toml +++ b/pros/Cargo.toml @@ -20,7 +20,7 @@ snafu = { version = "0.7.5", default-features = false, features = [ ] } no_std_io = { version = "0.6.0", features = ["alloc"] } log = "0.4.20" -chrono = { version = "0.4.31", default-features = false } +chrono = { version = "0.4.31", default-features = false, features = ["alloc"] } [target.'cfg(target_arch = "wasm32")'.dependencies] dlmalloc = { version = "0.2.4", features = ["global"] } diff --git a/pros/examples/logger.rs b/pros/examples/logger.rs new file mode 100644 index 00000000..790adfbb --- /dev/null +++ b/pros/examples/logger.rs @@ -0,0 +1,19 @@ +#![no_std] +#![no_main] + +use core::time::Duration; +use pros::prelude::*; + +#[derive(Debug, Default)] +struct ExampleRobot; +impl Robot for ExampleRobot { + fn opcontrol(&mut self) -> pros::Result { + pros::logger::ProsLogger::init().unwrap(); + + let str = "PROS"; + info!("Hello, {str}!"); + + Ok(()) + } +} +robot!(ExampleRobot); diff --git a/pros/src/logger.rs b/pros/src/logger.rs index 3831dabf..e29ae2c4 100644 --- a/pros/src/logger.rs +++ b/pros/src/logger.rs @@ -1,6 +1,6 @@ use core::time::Duration; -use alloc::{ffi::CString, format, string::ToString}; +use alloc::{ffi::CString, format}; use log::{Log, Metadata, Record}; @@ -26,8 +26,6 @@ impl Log for ProsLogger { } fn log(&self, record: &Record) { - let level_string = format!("{:<5}", record.level().to_string()); - let target = if !record.target().is_empty() { record.target() } else { @@ -38,7 +36,15 @@ impl Log for ProsLogger { chrono::Duration::from_std(Duration::from_millis(unsafe { pros_sys::millis() as _ })) .unwrap(); - let message = format!("{} {} [{}] {}", format!("{}m {}s {}ms", now.num_minutes(), now.num_seconds(), now.num_milliseconds()), level_string, target, record.args()); + let message = format!( + "{}m{}s{}ms [{}] {}: {}", + now.num_minutes(), + now.num_seconds(), + now.num_milliseconds(), + record.level(), + target, + record.args() + ); println!("{}", message); // Print to the debug teminal