From 9cd5c3656e831a30fe8ef606aff04adf4bba4a60 Mon Sep 17 00:00:00 2001 From: Lukas Wirth Date: Sun, 10 Aug 2025 17:19:06 +0200 Subject: [PATCH] util: Fix crate name extraction for `log_error_with_caller` (#35944) The paths can be absolute, meaning they would just log the initial segment of where the repo was cloned. Release Notes: - N/A --- crates/util/src/util.rs | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/crates/util/src/util.rs b/crates/util/src/util.rs index 932b519b18..b526f53ce4 100644 --- a/crates/util/src/util.rs +++ b/crates/util/src/util.rs @@ -669,9 +669,12 @@ where let file = caller.file(); #[cfg(target_os = "windows")] let file = caller.file().replace('\\', "/"); - // In this codebase, the first segment of the file path is - // the 'crates' folder, followed by the crate name. - let target = file.split('/').nth(1); + // In this codebase all crates reside in a `crates` directory, + // so discard the prefix up to that segment to find the crate name + let target = file + .split_once("crates/") + .and_then(|(_, s)| s.split_once('/')) + .map(|(p, _)| p); log::logger().log( &log::Record::builder()