binaryninja-api icon indicating copy to clipboard operation
binaryninja-api copied to clipboard

[Rust API] Improve logger documentation

Open saruman9 opened this issue 6 months ago • 2 comments

Version and Platform (required):

  • Binary Ninja Version: 5.0.7290-stable
  • Edition: Commercial
  • OS: macOS
  • OS Version: 14.5
  • CPU Architecture: Apple M-series (ARM64)

Bug Description: When using the Rust API to develop a plugin, I attempted to enable logging in headless mode using:

binaryninja::logger::Logger::new("Test").init();

However, no log output is produced, even when explicitly setting the log level. This makes it difficult to debug plugins in headless mode.

Most existing Rust plugin examples use print* macros instead of the log crate, which suggests that logger.init() may not be supported in this context — or perhaps I’m missing a required step.

Steps To Reproduce:

  1. Create a headless plugin using the Binary Ninja Rust API.
  2. Call binaryninja::logger::Logger::new("Test").init() and attempt to log a message using log::info!, warn!, etc.
  3. Run the plugin in headless mode using cargo run.
  4. Observe that no output is produced in the console.

Expected Behavior: I expected that logger.init() would configure logging correctly and output log messages to the console when running in headless mode.

Screenshots/Video Recording: N/A

Binary: Not applicable — this issue concerns plugin development using the Rust API.

Additional Information: Possibly related to issue #5101 and issue #1990.

Is this the intended behavior? Should I be using a third-party logging solution instead of the built-in Binary Ninja logger when working in headless mode?

saruman9 avatar May 22 '25 09:05 saruman9