vmbase: Use logger in example kernel

Use info! instead of println! in example code.

Test: atest vmbase_example.integration_test
Change-Id: I215836f892b88ba79900ae8f779d9682ca6430a6
diff --git a/vmbase/example/Android.bp b/vmbase/example/Android.bp
index c75820c..e9391b9 100644
--- a/vmbase/example/Android.bp
+++ b/vmbase/example/Android.bp
@@ -15,6 +15,7 @@
     rustlibs: [
         "libaarch64_paging",
         "libbuddy_system_allocator",
+        "liblog_rust_nostd",
         "libvmbase",
     ],
     enabled: false,
diff --git a/vmbase/example/src/main.rs b/vmbase/example/src/main.rs
index 6b110cf..3c91f97 100644
--- a/vmbase/example/src/main.rs
+++ b/vmbase/example/src/main.rs
@@ -29,7 +29,8 @@
 use aarch64_paging::{idmap::IdMap, paging::Attributes};
 use alloc::{vec, vec::Vec};
 use buddy_system_allocator::LockedHeap;
-use vmbase::{main, println};
+use log::{info, LevelFilter};
+use vmbase::{logger, main, println};
 
 static INITIALISED_DATA: [u32; 4] = [1, 2, 3, 4];
 static mut ZEROED_DATA: [u32; 10] = [0; 10];
@@ -47,8 +48,10 @@
 
 /// Entry point for VM bootloader.
 pub fn main(arg0: u64, arg1: u64, arg2: u64, arg3: u64) {
+    logger::init(LevelFilter::Debug).unwrap();
+
     println!("Hello world");
-    println!("x0={:#018x}, x1={:#018x}, x2={:#018x}, x3={:#018x}", arg0, arg1, arg2, arg3);
+    info!("x0={:#018x}, x1={:#018x}, x2={:#018x}, x3={:#018x}", arg0, arg1, arg2, arg3);
     print_addresses();
     assert_eq!(arg0, dtb_range().start.0 as u64);
     check_data();
@@ -83,20 +86,20 @@
         )
         .unwrap();
 
-    println!("Activating IdMap...");
-    println!("{:?}", idmap);
+    info!("Activating IdMap...");
+    info!("{:?}", idmap);
     idmap.activate();
-    println!("Activated.");
+    info!("Activated.");
 
     check_data();
 }
 
 fn check_data() {
-    println!("INITIALISED_DATA: {:#010x}", &INITIALISED_DATA as *const u32 as usize);
+    info!("INITIALISED_DATA: {:#010x}", &INITIALISED_DATA as *const u32 as usize);
     unsafe {
-        println!("ZEROED_DATA: {:#010x}", &ZEROED_DATA as *const u32 as usize);
-        println!("MUTABLE_DATA: {:#010x}", &MUTABLE_DATA as *const u32 as usize);
-        println!("HEAP: {:#010x}", &HEAP as *const u8 as usize);
+        info!("ZEROED_DATA: {:#010x}", &ZEROED_DATA as *const u32 as usize);
+        info!("MUTABLE_DATA: {:#010x}", &MUTABLE_DATA as *const u32 as usize);
+        info!("HEAP: {:#010x}", &HEAP as *const u8 as usize);
     }
 
     assert_eq!(INITIALISED_DATA[0], 1);
@@ -122,11 +125,11 @@
         MUTABLE_DATA[0] -= 41;
         assert_eq!(MUTABLE_DATA[0], 1);
     }
-    println!("Data looks good");
+    info!("Data looks good");
 }
 
 fn check_alloc() {
-    println!("Allocating a Vec...");
+    info!("Allocating a Vec...");
     let mut vector: Vec<u32> = vec![1, 2, 3, 4];
     assert_eq!(vector[0], 1);
     assert_eq!(vector[1], 2);
@@ -134,5 +137,5 @@
     assert_eq!(vector[3], 4);
     vector[2] = 42;
     assert_eq!(vector[2], 42);
-    println!("Vec seems to work.");
+    info!("Vec seems to work.");
 }