diff --git a/Cargo.toml b/Cargo.toml index 4021fb041..01afb0ecd 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -48,6 +48,9 @@ std = [] kv_unstable = [] kv_unstable_sval = ["kv_unstable", "sval/fmt"] +# requires 1.46.0 +track_caller = [] + [dependencies] cfg-if = "0.1.2" serde = { version = "1.0", optional = true, default-features = false } diff --git a/src/macros.rs b/src/macros.rs index ae6080d9b..30a861345 100644 --- a/src/macros.rs +++ b/src/macros.rs @@ -247,6 +247,16 @@ macro_rules! __log_module_path { #[doc(hidden)] #[macro_export] +#[cfg(feature = "track_caller")] +macro_rules! __log_file { + () => { + ::std::panic::Location::caller().file() + }; +} + +#[doc(hidden)] +#[macro_export] +#[cfg(not(feature = "track_caller"))] macro_rules! __log_file { () => { file!() @@ -255,6 +265,16 @@ macro_rules! __log_file { #[doc(hidden)] #[macro_export] +#[cfg(feature = "track_caller")] +macro_rules! __log_line { + () => { + ::std::panic::Location::caller().line() + }; +} + +#[doc(hidden)] +#[macro_export] +#[cfg(not(feature = "track_caller"))] macro_rules! __log_line { () => { line!()