windows: Fix sometimes log error messages don't show the crate name (#18706)
On windows, path could be something like `C:\path\to\the\crate`. Hence, `split('/')` would refuse to work in this case. ### Before  ### After  Release Notes: - N/A
This commit is contained in:
parent
fd22c9bef9
commit
8d6fa9526e
1 changed files with 5 additions and 1 deletions
|
@ -378,9 +378,13 @@ fn log_error_with_caller<E>(caller: core::panic::Location<'_>, error: E, level:
|
|||
where
|
||||
E: std::fmt::Debug,
|
||||
{
|
||||
#[cfg(not(target_os = "windows"))]
|
||||
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 = caller.file().split('/').nth(1);
|
||||
let target = file.split('/').nth(1);
|
||||
|
||||
log::logger().log(
|
||||
&log::Record::builder()
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue