Merge pull request #11 from fluencelabs/logger

use log::max_level() to check log level
This commit is contained in:
vms 2020-12-07 17:11:44 +03:00 committed by GitHub
commit ebf3e63aef
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
9 changed files with 33 additions and 22 deletions

View File

@ -18,8 +18,8 @@ all-features = true
path = "src/lib.rs"
[dependencies]
fluence-sdk-macro = { path = "crates/macro", version = "=0.2.9" }
fluence-sdk-main = { path = "crates/main", version = "=0.2.9" }
fluence-sdk-macro = { path = "crates/macro", version = "=0.2.10" }
fluence-sdk-main = { path = "crates/main", version = "=0.2.10" }
[features]
# Print some internal logs by log_utf8_string

View File

@ -1,6 +1,6 @@
[package]
name = "fluence-sdk-macro"
version = "0.2.9" # remember to update html_root_url
version = "0.2.10" # remember to update html_root_url
edition = "2018"
description = "Definition of `#[invoke_handler]` attribute"
documentation = "https://docs.rs/fluence/fluence-sdk-macro"
@ -17,4 +17,4 @@ all-features = true
proc-macro = true
[dependencies]
fluence-sdk-wit = { path = "../wit", version = "=0.2.9" }
fluence-sdk-wit = { path = "../wit", version = "=0.2.10" }

View File

@ -54,7 +54,7 @@
//!
//! ```
#![doc(html_root_url = "https://docs.rs/fluence-sdk-macro/0.2.9")]
#![doc(html_root_url = "https://docs.rs/fluence-sdk-macro/0.2.10")]
#![deny(
dead_code,
nonstandard_style,

View File

@ -1,6 +1,6 @@
[package]
name = "fluence-sdk-main"
version = "0.2.9" # remember to update html_root_url
version = "0.2.10" # remember to update html_root_url
edition = "2018"
description = "Rust SDK for applications for the Fluence network"
documentation = "https://docs.rs/fluence/fluence-sdk-macro"
@ -19,7 +19,7 @@ crate-type = ["rlib"]
[dependencies]
log = { version = "0.4.8", features = ["std"] }
fluence-sdk-macro = { path = "../macro", version = "=0.2.9" }
fluence-sdk-macro = { path = "../macro", version = "=0.2.10" }
serde = "1.0.115"
[dev-dependencies]

View File

@ -19,7 +19,7 @@
#![allow(clippy::missing_safety_doc)]
#![allow(clippy::needless_doctest_main)]
#![doc(html_root_url = "https://docs.rs/fluence-sdk-main/0.2.9")]
#![doc(html_root_url = "https://docs.rs/fluence-sdk-main/0.2.10")]
#![deny(
dead_code,
nonstandard_style,
@ -45,7 +45,7 @@ pub use export_allocator::allocate;
pub use export_allocator::deallocate;
#[cfg(feature = "logger")]
pub use logger::WasmLogger;
pub use logger::WasmLoggerBuilder;
#[cfg(feature = "logger")]
pub use logger::TargetMap;

View File

@ -54,26 +54,32 @@ pub type TargetMap = std::collections::HashMap<&'static str, i64>;
///
/// [log-crate-url]: https://docs.rs/log/
/// [`Log`]: https://docs.rs/log/0.4.11/log/trait.Log.html
pub struct WasmLogger {
level: log::Level,
struct WasmLogger {
target_map: TargetMap,
}
// #[allow(dead_code)]
impl WasmLogger {
/// Initializes the global logger with a [`WasmLogger`] instance with log level set to `Level::Info`.
/// The Wasm logger builder.
///
/// Build logger for the Fluence network, allows specifying target map and log level while building.
pub struct WasmLoggerBuilder {
target_map: TargetMap,
log_level: log::Level,
}
impl WasmLoggerBuilder {
/// Initializes a builder of the global logger with log level set to `Level::Info`.
/// It is a initial method in this builder chain, please note, that logger wouldn't work without
/// subsequent build() call.
pub fn new() -> Self {
Self {
level: log::Level::Info,
log_level: log::Level::Info,
target_map: <_>::default(),
}
}
/// Set the log level.
pub fn with_log_level(mut self, level: log::Level) -> Self {
self.level = level;
self.log_level = level;
self
}
@ -102,9 +108,14 @@ impl WasmLogger {
/// # }
/// ```
pub fn build(self) -> Result<(), log::SetLoggerError> {
let log_level = self.level;
let Self {
log_level,
target_map,
} = self;
log::set_boxed_logger(Box::new(self))?;
let wasm_logger = WasmLogger { target_map };
log::set_boxed_logger(Box::new(wasm_logger))?;
log::set_max_level(log_level.to_level_filter());
Ok(())
}
@ -113,7 +124,7 @@ impl WasmLogger {
impl log::Log for WasmLogger {
#[inline]
fn enabled(&self, metadata: &log::Metadata<'_>) -> bool {
metadata.level() <= self.level
metadata.level() <= log::max_level()
}
#[inline]

View File

@ -1,6 +1,6 @@
[package]
name = "fluence-sdk-wit"
version = "0.2.9" # remember to update html_root_url
version = "0.2.10" # remember to update html_root_url
edition = "2018"
description = "Webassembly interface-types generator"
documentation = "https://docs.rs/fluence/fluence-sdk-macro"

View File

@ -14,7 +14,7 @@
* limitations under the License.
*/
#![doc(html_root_url = "https://docs.rs/wit-support/0.2.9")]
#![doc(html_root_url = "https://docs.rs/wit-support/0.2.10")]
#![deny(
dead_code,
nonstandard_style,

View File

@ -74,7 +74,7 @@ pub use fluence_sdk_main::CallParameters;
pub use fluence_sdk_main::get_call_parameters;
#[cfg(feature = "logger")]
pub use fluence_sdk_main::WasmLogger;
pub use fluence_sdk_main::WasmLoggerBuilder;
#[cfg(feature = "logger")]
pub use fluence_sdk_main::TargetMap;