Struct Log

Source
pub struct Log;
Expand description

A class for logging errors, warnings and information! Different levels of information can be filtered out, and supports coloration via <~colorCode> and <~clr> tags.

Text colors can be set with a tag, and reset back to default with <~clr>. Color codes are as follows:

DarkBrightDescription
DARKBRIGHTDESCRIPTION
blkBLKBlack
redREDRed
grnGRNGreen
ylwYLWYellow
bluBLUBlue
magMAGMagenta
cyncynCyan
grnGRNGreen
whtWHTWhite

https://stereokit.net/Pages/StereoKit/Log.html

§Examples

use stereokit_rust::system::{Log, LogColors, LogLevel};

Log::colors(LogColors::Ansi);
Log::filter(LogLevel::Diagnostic);

Log::info("model <~GRN>node count<~clr> : <~RED>6589<~clr> !!!");

let value = 42;
Log::diag(format!("My value is {}", value));

Log::warn("This is not very good!");

Log::err("This is very bad!!!");

Log::write(LogLevel::Diagnostic, format!("Again, my value is {}", 2));

Implementations§

Source§

impl Log

Source

pub fn filter(filter: LogLevel)

What’s the lowest level of severity logs to display on the console? Default is LogLevel::Info. This property can safely be set before SK initialization. https://stereokit.net/Pages/StereoKit/Log.html

see also log_set_filter

§Examples
use stereokit_rust::system::{Log, LogLevel};

// Set the log filter to only show errors and above.
Log::filter(LogLevel::Error);

// Set the log filter to only show warnings and above (errors)
Log::filter(LogLevel::Warning);

// Set the log filter to only show infos and above (wanings and errors)
Log::filter(LogLevel::Inform);

// Set the log filter to show every logs
Log::filter(LogLevel::Diagnostic);
Source

pub fn colors(colors: LogColors)

Set the colors https://stereokit.net/Pages/StereoKit/Log.html

see also log_set_colors

§Examples
use stereokit_rust::system::{Log, LogColors};

// Set the log colors to use ANSI color codes.
Log::colors(LogColors::Ansi);

// Set the log colors to use no color codes.
Log::colors(LogColors::None);
Source

pub fn err<S: AsRef<str>>(text: S)

Writes a formatted line to the log using a LogLevel.Error severity level! https://stereokit.net/Pages/StereoKit/Log.html

see also log_err

§Examples
use stereokit_rust::system::Log;

Log::err("This is very bad!!!");

let value = 42;
Log::err(format!("My problematic value is {}", value));
Source

pub fn info<S: AsRef<str>>(text: S)

Writes a formatted line to the log using a LogLevel.Inform severity level! https://stereokit.net/Pages/StereoKit/Log.html

see also log_info

§Examples
use stereokit_rust::system::Log;

Log::info("This is good!");

let value = 42;
Log::info(format!("My value is {}", value));
Source

pub fn warn<S: AsRef<str>>(text: S)

Writes a formatted line to the log using a LogLevel.Warning severity level! https://stereokit.net/Pages/StereoKit/Log.html

see also log_warn

§Examples
use stereokit_rust::system::Log;

Log::warn("This is not very good!");

let value = 42;
Log::warn(format!("My not so good value is {}", value));
Source

pub fn diag<S: AsRef<str>>(text: S)

Writes a formatted line to the log using a LogLevel.Diagnostic severity level! https://stereokit.net/Pages/StereoKit/Log.html

see also log_diag

§Examples
use stereokit_rust::system::Log;

Log::diag("This is something to check!");

let value = 42;
Log::diag(format!("My value to check is {}", value));
Source

pub fn write<S: AsRef<str>>(level: LogLevel, text: S)

Writes a formatted line to the log with the specified severity level! https://stereokit.net/Pages/StereoKit/Log.html

see also log_write

§Examples
use stereokit_rust::system::{Log, LogLevel};

Log::write(LogLevel::Diagnostic, "This is something to check!!!");

let value = 42;
Log::write(LogLevel::Error, format!("My problematic value is {}", value));
Source

pub fn subscribe<'a, F: FnMut(LogLevel, &str) + 'a>(on_log: F)

Allows you to listen in on log events! Any callback subscribed here will be called when something is logged. This does honor the Log.Filter, so filtered logs will not be received here. This method can safely be called before SK initialization. https://stereokit.net/Pages/StereoKit/Log/Subscribe.html

see also log_subscribe Log::unsubscribe

§Examples
use stereokit_rust::system::{Log, LogLevel, LogItem};
use std::sync::{Arc, Mutex};

/// Somewhere to copy the log
static LOG_LOG: Mutex<Vec<LogItem>> = Mutex::new(vec![]);

let fn_mut = |level: LogLevel, log_text: &str| {
    let mut items = LOG_LOG.lock().unwrap();
    items.push(LogItem { level, text: log_text.to_owned(), count: 1 });
};
Log::subscribe( fn_mut );

Log::info("This is an info message");
Log::warn("This is a warning message");
Log::err("This is an error message");

let messages = LOG_LOG.lock().unwrap();
assert_eq!(messages.len(), 3);
assert_eq!(messages[0].level, LogLevel::Inform);
assert_eq!(messages[1].text, "This is a warning message");

Log::unsubscribe( fn_mut );
Source

pub fn unsubscribe<'a, F: FnMut(LogLevel, &str) + 'a>(on_log: F)

If you subscribed to the log callback, you can unsubscribe that callback here! This method can safely be called before initialization. https://stereokit.net/Pages/StereoKit/Log/Unsubscribe.html

see also log_unsubscribe see example in Log::subscribe

Auto Trait Implementations§

§

impl Freeze for Log

§

impl RefUnwindSafe for Log

§

impl Send for Log

§

impl Sync for Log

§

impl Unpin for Log

§

impl UnwindSafe for Log

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Downcast for T
where T: Any,

Source§

fn into_any(self: Box<T>) -> Box<dyn Any>

Convert Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.
Source§

fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>

Convert Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be further downcast into Rc<ConcreteType> where ConcreteType implements Trait.
Source§

fn as_any(&self) -> &(dyn Any + 'static)

Convert &Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &Any’s vtable from &Trait’s.
Source§

fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)

Convert &mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot generate &mut Any’s vtable from &mut Trait’s.
Source§

impl<T> DowncastSync for T
where T: Any + Send + Sync,

Source§

fn into_any_arc(self: Arc<T>) -> Arc<dyn Any + Send + Sync>

Convert Arc<Trait> (where Trait: Downcast) to Arc<Any>. Arc<Any> can then be further downcast into Arc<ConcreteType> where ConcreteType implements Trait.
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more