Attribute Macro sc_tracing::logging::prefix_logs_with
source · #[prefix_logs_with]
Expand description
Add a log prefix to the function.
This prefixes all the log lines with [<name>]
(after the timestamp). It works by making a
tracing’s span that is propagated to all the child calls and child tasks (futures) if they are
spawned properly with the SpawnHandle
(see TaskManager
in sc-cli) or if the futures use
.in_current_span()
(see tracing-futures).
See Tokio’s tracing documentation and tracing-futures documentation for more details.
Implementation notes
If there are multiple spans with a log prefix, only the latest will be shown.
Example with a literal
ⓘ
Builds a new service for a light client.
#[sc_cli::prefix_logs_with("light")]
pub fn new_light(config: Configuration) -> Result<TaskManager, ServiceError> {
let (client, backend, keystore, mut task_manager, on_demand) =
sc_service::new_light_parts::<Block, RuntimeApi, Executor>(&config)?;
...
}
Will produce logs that look like this:
2020-10-16 08:03:14 Substrate Node
2020-10-16 08:03:14 ✌️ version 2.0.0-47f7d3f2e-x86_64-linux-gnu
2020-10-16 08:03:14 ❤️ by Anonymous, 2017-2020
2020-10-16 08:03:14 📋 Chain specification: Local Testnet
2020-10-16 08:03:14 🏷 Node name: nice-glove-1401
2020-10-16 08:03:14 👤 Role: LIGHT
2020-10-16 08:03:14 💾 Database: RocksDb at /tmp/substrate95w2Dk/chains/local_testnet/db
2020-10-16 08:03:14 ⛓ Native runtime: node-template-1 (node-template-1.tx1.au1)
2020-10-16 08:03:14 [light] 🔨 Initializing Genesis block/state (state: 0x121d…8e36, header-hash: 0x24ef…8ff6)
2020-10-16 08:03:14 [light] Loading GRANDPA authorities from genesis on what appears to be first startup.
2020-10-16 08:03:15 [light] ⏱ Loaded block-time = 6000 milliseconds from genesis on first-launch
2020-10-16 08:03:15 [light] Using default protocol ID "sup" because none is configured in the chain specs
2020-10-16 08:03:15 [light] 🏷 Local node identity is: 12D3KooWHX4rkWT6a6N55Km7ZnvenGdShSKPkzJ3yj9DU5nqDtWR
2020-10-16 08:03:15 [light] 📦 Highest known block at #0
2020-10-16 08:03:15 [light] 〽️ Prometheus server started at 127.0.0.1:9615
2020-10-16 08:03:15 [light] Listening for new connections on 127.0.0.1:9944.
Example using the actual node name
ⓘ
Builds a new service for a light client.
#[sc_cli::prefix_logs_with(config.network.node_name.as_str())]
pub fn new_light(config: Configuration) -> Result<TaskManager, ServiceError> {
let (client, backend, keystore, mut task_manager, on_demand) =
sc_service::new_light_parts::<Block, RuntimeApi, Executor>(&config)?;
...
}
Will produce logs that look like this:
2020-10-16 08:12:57 Substrate Node
2020-10-16 08:12:57 ✌️ version 2.0.0-efb9b822a-x86_64-linux-gnu
2020-10-16 08:12:57 ❤️ by Anonymous, 2017-2020
2020-10-16 08:12:57 📋 Chain specification: Local Testnet
2020-10-16 08:12:57 🏷 Node name: open-harbor-1619
2020-10-16 08:12:57 👤 Role: LIGHT
2020-10-16 08:12:57 💾 Database: RocksDb at /tmp/substrate9T9Mtb/chains/local_testnet/db
2020-10-16 08:12:57 ⛓ Native runtime: node-template-1 (node-template-1.tx1.au1)
2020-10-16 08:12:58 [open-harbor-1619] 🔨 Initializing Genesis block/state (state: 0x121d…8e36, header-hash: 0x24ef…8ff6)
2020-10-16 08:12:58 [open-harbor-1619] Loading GRANDPA authorities from genesis on what appears to be first startup.
2020-10-16 08:12:58 [open-harbor-1619] ⏱ Loaded block-time = 6000 milliseconds from genesis on first-launch
2020-10-16 08:12:58 [open-harbor-1619] Using default protocol ID "sup" because none is configured in the chain specs
2020-10-16 08:12:58 [open-harbor-1619] 🏷 Local node identity is: 12D3KooWRzmYC8QTK1Pm8Cfvid3skTS4Hn54jc4AUtje8Rqbfgtp
2020-10-16 08:12:58 [open-harbor-1619] 📦 Highest known block at #0
2020-10-16 08:12:58 [open-harbor-1619] 〽️ Prometheus server started at 127.0.0.1:9615
2020-10-16 08:12:58 [open-harbor-1619] Listening for new connections on 127.0.0.1:9944.