| Crates.io | pinocchio-log-macro |
| lib.rs | pinocchio-log-macro |
| version | 0.5.0 |
| created_at | 2024-11-10 12:37:40.317587+00 |
| updated_at | 2025-07-24 21:32:45.974728+00 |
| description | Macro for pinocchio log utility |
| homepage | |
| repository | https://github.com/anza-xyz/pinocchio |
| max_upload_size | |
| id | 1442858 |
| size | 16,702 |
pinocchio-log-macro
Companion log! macro for pinocchio-log.
The macro automates the creation of a Logger object to log a message. It support a subset of the format! syntax. The macro parses the format string at compile time and generates the calls to a Logger object to generate the corresponding formatted message.
The macro works very similar to solana-program msg! macro.
To output a simple message (static &str):
use pinocchio_log::log
log!("a simple log");
To output a formatted message:
use pinocchio_log::log
let amount = 1_000_000_000;
log!("transfer amount: {}", amount);
Since a Logger size is statically determined, messages are limited to 200 length by default. When logging larger messages, it is possible to increase the logger buffer size:
use pinocchio_log::log
let very_long_message = "...";
log!(500, "message: {}", very_long_message);
It is possible to include a precision formatting for numeric values:
use pinocchio_log::log
let lamports = 1_000_000_000;
log!("transfer amount (SOL: {:.9}", lamports);
For &str types, it is possible to specify a maximum length and a truncation strategy:
use pinocchio_log::log
let program_name = "pinocchio-program";
// log message: "...program"
log!("{:<.10}", program_name);
// log message: "pinocchio-..."
log!("{:>.10}", program_name);
The code is licensed under the Apache License Version 2.0