Lazy formatting for logger calls (#5046) * Formatting improvements * Use lazy account/node ID formatting in logs Add `nano::log::as_account` and `nano::log::as_node_id` wrappers so log formatting can stream public keys without creating temporary strings. Implement ostream-based node ID encoding and update log call sites to use the new wrappers. * Introduce distinct account type Replace the `account` alias with a dedicated class derived from `public_key` and add the formatter, hash, forward declarations, and `db_val` conversion needed to use it across the codebase. Adjust wallet, Qt, RPC test, and vote cache interfaces to match the new type semantics and avoid storing mutable account references. * Remove redundant account log wrappers * Use as_nano for balance logging * Use fmt for IP address log formatting * Move stat enum to_string into stat namespace * Use fmt::print in benchmark logging Replace benchmark log statements that streamed `fmt::format(...)` into `std::cout` with direct `fmt::print(...)` calls. * Fix compilation * Refactor balance formatting into stream encoder Extract shared balance formatting helpers into `balance_formatting.hpp` and add `uint128_union::encode_balance()` so callers can write formatted balances directly to streams. * Default as_nano formatting to 1 decimal place * Remove generic fmt formatter for streamed types * Refine log formatting helpers * Fix source account in wallet send warning * Boost error_code fmt formatter * Refactor uint128 balance formatting Expose a free encode_balance overload for uint128_t values and update as_nano/as_raw_nano to format by reference without constructing temporary uint128_union instances. * Remove unused explicit locale format_balance overload
__________
Type: commit
Hash: 6ef4b550ca24f56083a0e8779ba7021e809347cf
Created: yesterday
__________
gr0v1ty/nano-node:6ef4b550ca24f56083a0e8779ba7021e809347cf
| Test Case | Status | Duration | Median Deviation | Log | Graph |
|---|