2 unstable releases
new 0.3.0 | Dec 18, 2024 |
---|---|
0.1.0 | Nov 10, 2024 |
#136 in #log-messages
90 downloads per month
Used in pinocchio-log
13KB
170 lines
pinocchio-log-macro
Companion log!
macro for pinocchio-log
.
Overview
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.
Usage
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 ouput 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 maximim 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);
License
The code is licensed under the Apache License Version 2.0
Dependencies
~3.5–4.5MB
~90K SLoC