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

Top comments (0)