use log::max_level() to check log level

This commit is contained in:
vms 2020-12-07 16:26:45 +03:00
parent fd9672636e
commit e6e7daa1d3
8 changed files with 27 additions and 18 deletions

View File

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

View File

@ -1,6 +1,6 @@
[package] [package]
name = "fluence-sdk-macro" 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" edition = "2018"
description = "Definition of `#[invoke_handler]` attribute" description = "Definition of `#[invoke_handler]` attribute"
documentation = "https://docs.rs/fluence/fluence-sdk-macro" documentation = "https://docs.rs/fluence/fluence-sdk-macro"
@ -17,4 +17,4 @@ all-features = true
proc-macro = true proc-macro = true
[dependencies] [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( #![deny(
dead_code, dead_code,
nonstandard_style, nonstandard_style,

View File

@ -1,6 +1,6 @@
[package] [package]
name = "fluence-sdk-main" 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" edition = "2018"
description = "Rust SDK for applications for the Fluence network" description = "Rust SDK for applications for the Fluence network"
documentation = "https://docs.rs/fluence/fluence-sdk-macro" documentation = "https://docs.rs/fluence/fluence-sdk-macro"
@ -19,7 +19,7 @@ crate-type = ["rlib"]
[dependencies] [dependencies]
log = { version = "0.4.8", features = ["std"] } 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" serde = "1.0.115"
[dev-dependencies] [dev-dependencies]

View File

@ -19,7 +19,7 @@
#![allow(clippy::missing_safety_doc)] #![allow(clippy::missing_safety_doc)]
#![allow(clippy::needless_doctest_main)] #![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( #![deny(
dead_code, dead_code,
nonstandard_style, nonstandard_style,

View File

@ -55,25 +55,29 @@ pub type TargetMap = std::collections::HashMap<&'static str, i64>;
/// [log-crate-url]: https://docs.rs/log/ /// [log-crate-url]: https://docs.rs/log/
/// [`Log`]: https://docs.rs/log/0.4.11/log/trait.Log.html /// [`Log`]: https://docs.rs/log/0.4.11/log/trait.Log.html
pub struct WasmLogger { pub struct WasmLogger {
level: log::Level,
target_map: TargetMap, target_map: TargetMap,
} }
pub struct WasmLoggerBuilder {
target_map: TargetMap,
log_level: log::Level,
}
// #[allow(dead_code)] // #[allow(dead_code)]
impl WasmLogger { impl WasmLoggerBuilder {
/// Initializes the global logger with a [`WasmLogger`] instance with log level set to `Level::Info`. /// 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 /// It is a initial method in this builder chain, please note, that logger wouldn't work without
/// subsequent build() call. /// subsequent build() call.
pub fn new() -> Self { pub fn new() -> Self {
Self { Self {
level: log::Level::Info, log_level: log::Level::Info,
target_map: <_>::default(), target_map: <_>::default(),
} }
} }
/// Set the log level. /// Set the log level.
pub fn with_log_level(mut self, level: log::Level) -> Self { pub fn with_log_level(mut self, level: log::Level) -> Self {
self.level = level; self.log_level = level;
self self
} }
@ -102,9 +106,14 @@ impl WasmLogger {
/// # } /// # }
/// ``` /// ```
pub fn build(self) -> Result<(), log::SetLoggerError> { 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()); log::set_max_level(log_level.to_level_filter());
Ok(()) Ok(())
} }
@ -113,7 +122,7 @@ impl WasmLogger {
impl log::Log for WasmLogger { impl log::Log for WasmLogger {
#[inline] #[inline]
fn enabled(&self, metadata: &log::Metadata<'_>) -> bool { fn enabled(&self, metadata: &log::Metadata<'_>) -> bool {
metadata.level() <= self.level metadata.level() <= log::max_level()
} }
#[inline] #[inline]

View File

@ -1,6 +1,6 @@
[package] [package]
name = "fluence-sdk-wit" 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" edition = "2018"
description = "Webassembly interface-types generator" description = "Webassembly interface-types generator"
documentation = "https://docs.rs/fluence/fluence-sdk-macro" documentation = "https://docs.rs/fluence/fluence-sdk-macro"

View File

@ -14,7 +14,7 @@
* limitations under the License. * 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( #![deny(
dead_code, dead_code,
nonstandard_style, nonstandard_style,