DEV Community

nikania
nikania

Posted on

Using log in Substrate

How to log in substrate pallets and how to see logs when running node (can be useful to see existing logs in polkadot when debugging).

Import log crate in Cargo.toml of pallets/template

[dependencies]
log = "0.4"
Enter fullscreen mode Exit fullscreen mode

Add some logging to extrinsic do_something in pallet-template (gibberish in my case)

log::trace!(target: "lalala", "do_something is working!");
log::trace!(target: "ononono", "do_something is working!");
log::trace!(target: "test::werr", "do_something is working!");
...
log::trace!(target: "lalala", "do_something is done!");
log::trace!(target: "ononono", "do_something is done!");
log::trace!(target: "test::werr", "do_something is done!");
Enter fullscreen mode Exit fullscreen mode

Build node, and run with log filtering (filters only target: "lalala" trace logs):

./target/release/node-template --dev --tmp --log lalala=trace
Enter fullscreen mode Exit fullscreen mode

when execute extrinsics, trace log is in output:

Image description

different filtering (notice that target: "test::werr" can be filtered like that test=trace)

./target/release/node-template --dev --tmp --log lalala=trace ononono=trace test=trace
Enter fullscreen mode Exit fullscreen mode

--different output

Image description

For example to trace xcm messages in parachains/relay chain filter can be used: --log xcm=trace

Image of Timescale

🚀 pgai Vectorizer: SQLAlchemy and LiteLLM Make Vector Search Simple

We built pgai Vectorizer to simplify embedding management for AI applications—without needing a separate database or complex infrastructure. Since launch, developers have created over 3,000 vectorizers on Timescale Cloud, with many more self-hosted.

Read full post →

Top comments (0)

Postmark Image

Speedy emails, satisfied customers

Are delayed transactional emails costing you user satisfaction? Postmark delivers your emails almost instantly, keeping your customers happy and connected.

Sign up