Skip to content

Commit b58cf80

Browse files
committed
Add function for setting log level
Also adds a test for setting log level to DEBUG
1 parent d30bb76 commit b58cf80

File tree

3 files changed

+40
-2
lines changed

3 files changed

+40
-2
lines changed

src/interface.rs

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,10 @@ use serde_json::value::Value;
1111
use crate::error::Error;
1212
use crate::types::{
1313
HWIAddress, HWIAddressType, HWIChain, HWIDescriptor, HWIDevice, HWIExtendedPubKey,
14-
HWIKeyPoolElement, HWIPartiallySignedTransaction, HWISignature, HWIStatus,
14+
HWIKeyPoolElement, HWIPartiallySignedTransaction, HWISignature, HWIStatus, LogLevel,
1515
};
1616

17-
use pyo3::prelude::*;
17+
use pyo3::{prelude::*, py_run};
1818

1919
macro_rules! deserialize_obj {
2020
( $e: expr ) => {{
@@ -293,4 +293,28 @@ impl HWIClient {
293293
status.into()
294294
})
295295
}
296+
297+
/// Set logging level
298+
/// # Arguments
299+
/// * `level` - Log level.
300+
pub fn set_log_level(level: LogLevel) -> Result<(), Error> {
301+
Python::with_gil(|py| {
302+
let arg = match level {
303+
LogLevel::DEBUG => 10,
304+
LogLevel::INFO => 20,
305+
LogLevel::WARNING => 30,
306+
LogLevel::ERROR => 40,
307+
LogLevel::CRITICAL => 50,
308+
};
309+
py_run!(
310+
py,
311+
arg,
312+
r#"
313+
import logging
314+
logging.basicConfig(level=arg)
315+
"#
316+
);
317+
Ok(())
318+
})
319+
}
296320
}

src/lib.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,4 +218,11 @@ mod tests {
218218
HWIClient::install_udev_rules(None, None).unwrap()
219219
}
220220
}
221+
222+
#[test]
223+
#[serial]
224+
fn test_set_log_level() {
225+
HWIClient::set_log_level(types::LogLevel::DEBUG).unwrap();
226+
test_enumerate();
227+
}
221228
}

src/types.rs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -148,3 +148,10 @@ impl From<HWIStatus> for Result<(), Error> {
148148
}
149149
}
150150
}
151+
pub enum LogLevel {
152+
DEBUG,
153+
INFO,
154+
WARNING,
155+
ERROR,
156+
CRITICAL,
157+
}

0 commit comments

Comments
 (0)