From 54a210354a024d68bb6ac642701efa39ef7f5ebc Mon Sep 17 00:00:00 2001 From: Paul Woolcock Date: Mon, 27 Nov 2023 07:59:54 -0500 Subject: [PATCH] Use `std::panic::Location` to get log location information --- src/__private_api.rs | 12 +++++++++++- src/macros.rs | 8 ++++---- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/__private_api.rs b/src/__private_api.rs index 359deebbc..3faaa5669 100644 --- a/src/__private_api.rs +++ b/src/__private_api.rs @@ -3,7 +3,7 @@ use self::sealed::KVs; use crate::{Level, Metadata, Record}; use std::fmt::Arguments; -pub use std::{file, format_args, line, module_path, stringify}; +pub use std::{format_args, module_path, stringify}; #[cfg(feature = "kv_unstable")] pub type Value<'a> = dyn crate::kv::value::ToValue + 'a; @@ -34,6 +34,16 @@ impl<'a> KVs<'a> for () { } } +#[track_caller] +pub fn file<'a>() -> &'a str { + ::std::panic::Location::caller().file() +} + +#[track_caller] +pub fn line() -> u32 { + ::std::panic::Location::caller().line() +} + // Log implementation. fn log_impl( diff --git a/src/macros.rs b/src/macros.rs index 44945f0d9..6918245a1 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -36,8 +36,8 @@ macro_rules! log { $crate::__private_api::log::<&_>( $crate::__private_api::format_args!($($arg)+), lvl, - &($target, $crate::__private_api::module_path!(), $crate::__private_api::file!()), - $crate::__private_api::line!(), + &($target, $crate::__private_api::module_path!(), $crate::__private_api::file()), + $crate::__private_api::line(), &[$(($crate::__log_key!($key), &$value)),+] ); } @@ -50,8 +50,8 @@ macro_rules! log { $crate::__private_api::log( $crate::__private_api::format_args!($($arg)+), lvl, - &($target, $crate::__private_api::module_path!(), $crate::__private_api::file!()), - $crate::__private_api::line!(), + &($target, $crate::__private_api::module_path!(), $crate::__private_api::file()), + $crate::__private_api::line(), (), ); }