From e2f570db7d316645c066868382ec8012b2287134 Mon Sep 17 00:00:00 2001
From: Seemant Aggarwal <seemant.aggarwal@parity.io>
Date: Tue, 18 Feb 2025 14:04:20 +0530
Subject: [PATCH] further effort, no success

---
 .../client/tracing/proc-macro/src/lib.rs      | 33 +++++++------------
 templates/parachain/node/src/service.rs       |  1 +
 2 files changed, 13 insertions(+), 21 deletions(-)

diff --git a/substrate/client/tracing/proc-macro/src/lib.rs b/substrate/client/tracing/proc-macro/src/lib.rs
index c1adfe3378f..38ae06ae764 100644
--- a/substrate/client/tracing/proc-macro/src/lib.rs
+++ b/substrate/client/tracing/proc-macro/src/lib.rs
@@ -117,20 +117,13 @@ pub fn prefix_logs_with(arg: TokenStream, item: TokenStream) -> TokenStream {
 
 	let name = syn::parse_macro_input!(arg as Expr);
 
-	// Try resolving `sc-tracing` from `polkadot-sdk` first, otherwise fallback to `sc-tracing`
-	let crate_ident = if let Ok(FoundCrate::Name(sdk_name)) = crate_name("polkadot-sdk") {
-		Ident::new(&format!("{}::sc_tracing", sdk_name), Span::call_site())
-	} else if let Ok(FoundCrate::Itself) = crate_name("sc-tracing") {
-		Ident::new("sc_tracing", Span::call_site())
-	} else if let Ok(FoundCrate::Name(tracing_name)) = crate_name("sc-tracing") {
-		Ident::new(&tracing_name, Span::call_site())
-	} else {
-		return Error::new(
-			Span::call_site(),
-			"Could not find `sc-tracing` or `polkadot-sdk` in dependencies",
-		)
-			.to_compile_error()
-			.into();
+	let crate_name = match crate_name("polkadot-sdk") {
+		Ok(FoundCrate::Name(sdk_name)) => Ident::new(sdk_name.as_str(), Span::call_site()),
+		_ => match crate_name("sc-tracing") {
+			Ok(FoundCrate::Itself) => Ident::new("sc_tracing", Span::call_site()),
+			Ok(FoundCrate::Name(tracing_name)) => Ident::new(tracing_name.as_str(), Span::call_site()),
+			Err(e) => return Error::new(Span::call_site(), e).to_compile_error().into(),
+		},
 	};
 
 	let ItemFn { attrs, vis, sig, block } = item_fn;
@@ -138,16 +131,14 @@ pub fn prefix_logs_with(arg: TokenStream, item: TokenStream) -> TokenStream {
 	(quote! {
         #(#attrs)*
         #vis #sig {
-            let span = #crate_ident::tracing::info_span!(
-                #crate_ident::logging::PREFIX_LOG_SPAN,
+            let span = #crate_name::tracing::info_span!(
+                #crate_name::logging::PREFIX_LOG_SPAN,
                 name = #name,
             );
-            let _guard = span.enter(); // Keep this variable alive throughout the function
-
-            let result = (|| #block)(); // Execute the function body in a closure
+            let _enter = span.enter();
 
-            result
+            #block
         }
     })
 		.into()
-}
+}
\ No newline at end of file
diff --git a/templates/parachain/node/src/service.rs b/templates/parachain/node/src/service.rs
index f92d8a5e580..8e423e0737d 100644
--- a/templates/parachain/node/src/service.rs
+++ b/templates/parachain/node/src/service.rs
@@ -31,6 +31,7 @@ use cumulus_relay_chain_interface::{OverseerHandle, RelayChainInterface};
 
 // Substrate Imports
 use frame_benchmarking_cli::SUBSTRATE_REFERENCE_HARDWARE;
+use polkadot_sdk::sc_tracing::logging;
 use prometheus_endpoint::Registry;
 use sc_client_api::Backend;
 use sc_consensus::ImportQueue;
-- 
GitLab