Skip to content

Commit 61936e1

Browse files
Merge bitcoindevkit/rust-hwi#23: Add debug flag equivalent
b58cf80b7b3dc4d7e86acd04e40fde90a284348f Add function for setting log level (wszdexdrf) Pull request description: This adds a function set_debug which will lower log levels to DEBUG so that more messages are logged. ACKs for top commit: danielabrozzoni: ACK b58cf80b7b3dc4d7e86acd04e40fde90a284348f Tree-SHA512: a3c1700a540a8014b291a00f3171e14be11f25f0bf62e368ef9fabb2898a62784e69fbc03b4264720797832ffe09365f204d58439ba32549889f10ac830b6b05
2 parents 6c5bd0e + 55ea856 commit 61936e1

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)