Enables log messages for pyo3 embedded Python applications using Python's logging
module.
```rust use log::{info, warn}; use pyo3::prelude::*;
fn main() { // register the host handler with python logger, providing a logger target pyo3pylogger::register("exampleapplicationpylogger");
// initialize up a logger
env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("trace")).init();
info!("Just some normal information!");
//just show the logger working from Rust.
warn!("Something spooky happened!");
// Ask pyo3 to set up embedded Python interpreter
pyo3::prepare_freethreaded_python();
Python::with_gil(|py| {
// Python code can now `import logging` as usual
py.run("import logging", None, None).unwrap();
// Log messages are forwarded to `tracing` and dealt with by the subscriber
py.run("logging.error('Something bad happened')", None, None)
.unwrap();
});
}```
[2022-12-27T15:26:12Z INFO example_project] Just some normal information!
[2022-12-27T15:26:12Z WARN example_project] Something spooky happened!
[2022-12-27T15:26:12Z ERROR example_application_py_logger] Something bad happened