corevm 0.1.26

The JAM CoreVM Service, a container service for running regular software on JAM.
Documentation
/// A `log::Log` implementation that forwards log to `jam_pvm_common` log macros.
pub struct JamLogger;

impl JamLogger {
	#[cfg(all(feature = "logging", not(feature = "no-logging")))]
	pub fn init() {
		log::set_logger(&JamLogger).expect("Failed to set logger");
		log::set_max_level(log::LevelFilter::Trace);
	}

	#[cfg(not(all(feature = "logging", not(feature = "no-logging"))))]
	pub fn init() {}
}

#[cfg(all(feature = "logging", not(feature = "no-logging")))]
impl log::Log for JamLogger {
	fn enabled(&self, _metadata: &log::Metadata) -> bool {
		true
	}

	fn log(&self, record: &log::Record) {
		use jam_pvm_common::{debug, error, info, trace, warn};
		let target = record.target();
		match record.level() {
			log::Level::Trace => trace!(target = target, "{}", record.args()),
			log::Level::Debug => debug!(target = target, "{}", record.args()),
			log::Level::Warn => warn!(target = target, "{}", record.args()),
			log::Level::Error => error!(target = target, "{}", record.args()),
			log::Level::Info => info!(target = target, "{}", record.args()),
		}
	}

	fn flush(&self) {}
}