Skip to content

Commit

Permalink
PR feedback
Browse files Browse the repository at this point in the history
  • Loading branch information
Robo210 committed Jul 31, 2024
1 parent 4a91b94 commit 12aafc8
Show file tree
Hide file tree
Showing 8 changed files with 124 additions and 97 deletions.
28 changes: 14 additions & 14 deletions src/layer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,18 @@ use tracing_subscriber::{registry::LookupSpan, Layer};

use crate::_details::{EtwFilter, EtwLayer};
use crate::native::{EventWriter, GuidWrapper, ProviderTypes};
use crate::{map_level, native};
use crate::native;
use crate::values::*;
use crate::statics::*;

pub struct LayerBuilder<Mode>
where
Mode: ProviderTypes
{
pub(crate) provider_name: String,
pub(crate) provider_id: GuidWrapper,
pub(crate) provider_group: Option<Mode::ProviderGroupType>,
pub(crate) default_keyword: u64,
provider_name: String,
provider_id: GuidWrapper,
provider_group: Option<Mode::ProviderGroupType>,
default_keyword: u64,
_m: PhantomData<Mode>,
}

Expand Down Expand Up @@ -234,7 +234,7 @@ where
};

if Mode::supports_enable_callback() {
if self.provider.enabled(map_level(metadata.level()), keyword) {
if self.provider.enabled(metadata.level(), keyword) {
tracing::subscriber::Interest::always()
} else {
tracing::subscriber::Interest::never()
Expand All @@ -259,7 +259,7 @@ where
};

self.provider
.enabled(map_level(metadata.level()), keyword)
.enabled(metadata.level(), keyword)
}

fn event_enabled(
Expand All @@ -275,7 +275,7 @@ where
};

self.provider
.enabled(map_level(event.metadata().level()), keyword)
.enabled(event.metadata().level(), keyword)
}
}

Expand Down Expand Up @@ -313,7 +313,7 @@ where
};

if P::supports_enable_callback() {
if self.provider.enabled(map_level(metadata.level()), keyword) {
if self.provider.enabled(metadata.level(), keyword) {
tracing::subscriber::Interest::always()
} else {
tracing::subscriber::Interest::never()
Expand All @@ -338,7 +338,7 @@ where
self.default_keyword
};

self.provider.enabled(map_level(metadata.level()), keyword)
self.provider.enabled(metadata.level(), keyword)
}

#[cfg(feature = "global_filter")]
Expand All @@ -355,7 +355,7 @@ where
};

self.provider
.enabled(map_level(event.metadata().level()), keyword)
.enabled(event.metadata().level(), keyword)
}

fn on_event(&self, event: &tracing::Event<'_>, ctx: tracing_subscriber::layer::Context<'_, S>) {
Expand All @@ -381,7 +381,7 @@ where
current_span,
parent_span,
name,
map_level(event.metadata().level()),
event.metadata().level(),
keyword,
tag,
event,
Expand Down Expand Up @@ -501,7 +501,7 @@ where
&data.activity_id,
&data.related_activity_id,
&data.fields,
map_level(metadata.level()),
metadata.level(),
keyword,
tag,
);
Expand Down Expand Up @@ -542,7 +542,7 @@ where
&data.activity_id,
&data.related_activity_id,
&data.fields,
map_level(metadata.level()),
metadata.level(),
keyword,
tag,
);
Expand Down
14 changes: 1 addition & 13 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -82,19 +82,7 @@ mod statics;
#[doc(hidden)]
pub mod _details;

pub use layer::*;

#[inline]
#[doc(hidden)]
pub const fn map_level(level: &tracing::Level) -> u8 {
match *level {
tracing::Level::ERROR => native::native_level::Error.as_int(),
tracing::Level::WARN => native::native_level::Warning.as_int(),
tracing::Level::INFO => native::native_level::Informational.as_int(),
tracing::Level::DEBUG => native::native_level::Verbose.as_int(),
tracing::Level::TRACE => native::native_level::Verbose.as_int() + 1,
}
}
pub use layer::LayerBuilder;

#[macro_export]
macro_rules! etw_event {
Expand Down
25 changes: 18 additions & 7 deletions src/native/common_schema/etw_cs.rs
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,17 @@ impl CommonSchemaProvider {
fn get_provider(self: Pin<&Self>) -> Pin<&tracelogging_dynamic::Provider> {
unsafe { self.map_unchecked(|s| &s.provider) }
}

#[inline]
const fn map_level(level: &tracing_core::Level) -> tracelogging::Level {
match *level {
tracing_core::Level::ERROR => tracelogging::Level::Error,
tracing_core::Level::WARN => tracelogging::Level::Warning,
tracing_core::Level::INFO => tracelogging::Level::Informational,
tracing_core::Level::DEBUG => tracelogging::Level::Verbose,
tracing_core::Level::TRACE => tracelogging::Level::from_int(tracelogging::Level::Verbose.as_int() + 1),
}
}
}

impl crate::native::ProviderTypes for CommonSchemaProvider {
Expand Down Expand Up @@ -114,9 +125,9 @@ impl crate::native::EventWriter<CommonSchemaProvider> for CommonSchemaProvider {
}

#[inline]
fn enabled(&self, level: u8, keyword: u64) -> bool {
fn enabled(&self, level: &tracing_core::Level, keyword: u64) -> bool {
self.provider
.enabled(tracelogging::Level::from_int(level), keyword)
.enabled(Self::map_level(level), keyword)
}

fn span_start<'a, 'b, R>(
Expand All @@ -126,7 +137,7 @@ impl crate::native::EventWriter<CommonSchemaProvider> for CommonSchemaProvider {
_activity_id: &[u8; 16],
_related_activity_id: &[u8; 16],
_fields: &'b [crate::values::FieldValueIndex],
_level: u8,
_level: &tracing_core::Level,
_keyword: u64,
_event_tag: u32,
) where
Expand All @@ -141,7 +152,7 @@ impl crate::native::EventWriter<CommonSchemaProvider> for CommonSchemaProvider {
_activity_id: &[u8; 16],
_related_activity_id: &[u8; 16],
fields: &'b [crate::values::FieldValueIndex],
level: u8,
level: &tracing_core::Level,
keyword: u64,
event_tag: u32,
) where
Expand All @@ -159,7 +170,7 @@ impl crate::native::EventWriter<CommonSchemaProvider> for CommonSchemaProvider {
EBW.with(|eb| {
let mut eb = eb.borrow_mut();

eb.reset(span_name, level.into(), keyword, event_tag);
eb.reset(span_name, Self::map_level(level), keyword, event_tag);
eb.opcode(Opcode::Info);

// Promoting values from PartC to PartA extensions is apparently just a draft spec
Expand Down Expand Up @@ -251,15 +262,15 @@ impl crate::native::EventWriter<CommonSchemaProvider> for CommonSchemaProvider {
current_span: u64,
_parent_span: u64,
event_name: &str,
level: u8,
level: &tracing_core::Level,
keyword: u64,
event_tag: u32,
event: &tracing::Event<'_>,
) {
EBW.with(|eb| {
let mut eb = eb.borrow_mut();

eb.reset(event_name, level.into(), keyword, event_tag);
eb.reset(event_name, Self::map_level(level), keyword, event_tag);
eb.opcode(Opcode::Info);

// Promoting values from PartC to PartA extensions is apparently just a draft spec
Expand Down
51 changes: 31 additions & 20 deletions src/native/common_schema/user_events_cs.rs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
use crate::{map_level, values::*};
use crate::values::*;
use eventheader::*;
use eventheader_dynamic::EventBuilder;
use std::{
Expand Down Expand Up @@ -92,6 +92,17 @@ impl CommonSchemaProvider {
fn get_provider(self: Pin<&Self>) -> Pin<&std::sync::RwLock<eventheader_dynamic::Provider>> {
unsafe { self.map_unchecked(|s| &s.provider) }
}

#[inline]
const fn map_level(level: &tracing_core::Level) -> eventheader_dynamic::Level {
match *level {
tracing_core::Level::ERROR => eventheader_dynamic::Level::Error,
tracing_core::Level::WARN => eventheader_dynamic::Level::Warning,
tracing_core::Level::INFO => eventheader_dynamic::Level::Informational,
tracing_core::Level::DEBUG => eventheader_dynamic::Level::Verbose,
tracing_core::Level::TRACE => eventheader_dynamic::Level::from_int(eventheader_dynamic::Level::Verbose.as_int() + 1),
}
}
}

impl crate::native::EventWriter<CommonSchemaProvider> for CommonSchemaProvider {
Expand All @@ -112,45 +123,45 @@ impl crate::native::EventWriter<CommonSchemaProvider> for CommonSchemaProvider {

for event in &*crate::statics::EVENT_METADATA {
provider.register_set(
eventheader_dynamic::Level::from_int(map_level(&tracing::Level::ERROR)),
Self::map_level(&tracing::Level::ERROR),
event.kw,
);
provider.register_set(
eventheader_dynamic::Level::from_int(map_level(&tracing::Level::WARN)),
Self::map_level(&tracing::Level::WARN),
event.kw,
);
provider.register_set(
eventheader_dynamic::Level::from_int(map_level(&tracing::Level::INFO)),
Self::map_level(&tracing::Level::INFO),
event.kw,
);
provider.register_set(
eventheader_dynamic::Level::from_int(map_level(&tracing::Level::DEBUG)),
Self::map_level(&tracing::Level::DEBUG),
event.kw,
);
provider.register_set(
eventheader_dynamic::Level::from_int(map_level(&tracing::Level::TRACE)),
Self::map_level(&tracing::Level::TRACE),
event.kw,
);
}

provider.register_set(
eventheader_dynamic::Level::from_int(map_level(&tracing::Level::ERROR)),
Self::map_level(&tracing::Level::ERROR),
default_keyword,
);
provider.register_set(
eventheader_dynamic::Level::from_int(map_level(&tracing::Level::WARN)),
Self::map_level(&tracing::Level::WARN),
default_keyword,
);
provider.register_set(
eventheader_dynamic::Level::from_int(map_level(&tracing::Level::INFO)),
Self::map_level(&tracing::Level::INFO),
default_keyword,
);
provider.register_set(
eventheader_dynamic::Level::from_int(map_level(&tracing::Level::DEBUG)),
Self::map_level(&tracing::Level::DEBUG),
default_keyword,
);
provider.register_set(
eventheader_dynamic::Level::from_int(map_level(&tracing::Level::TRACE)),
Self::map_level(&tracing::Level::TRACE),
default_keyword,
);

Expand All @@ -160,12 +171,12 @@ impl crate::native::EventWriter<CommonSchemaProvider> for CommonSchemaProvider {
}

#[inline]
fn enabled(&self, level: u8, keyword: u64) -> bool {
fn enabled(&self, level: &tracing_core::Level, keyword: u64) -> bool {
let es = self
.provider
.read()
.unwrap()
.find_set(eventheader_dynamic::Level::from_int(level), keyword);
.find_set(Self::map_level(level), keyword);
if let Some(s) = es { s.enabled() } else { false }
}

Expand All @@ -176,7 +187,7 @@ impl crate::native::EventWriter<CommonSchemaProvider> for CommonSchemaProvider {
_activity_id: &[u8; 16],
_related_activity_id: &[u8; 16],
_fields: &'b [crate::values::FieldValueIndex],
_level: u8,
_level: &tracing_core::Level,
_keyword: u64,
_event_tag: u32,
) where
Expand All @@ -191,7 +202,7 @@ impl crate::native::EventWriter<CommonSchemaProvider> for CommonSchemaProvider {
_activity_id: &[u8; 16],
_related_activity_id: &[u8; 16],
fields: &'b [crate::values::FieldValueIndex],
level: u8,
level: &tracing_core::Level,
keyword: u64,
event_tag: u32,
) where
Expand All @@ -206,10 +217,10 @@ impl crate::native::EventWriter<CommonSchemaProvider> for CommonSchemaProvider {
span_id.assume_init()
};

let es = if let Some(es) = self.find_set(level.into(), keyword) {
let es = if let Some(es) = self.find_set(Self::map_level(level), keyword) {
es
} else {
self.register_set(level.into(), keyword)
self.register_set(Self::map_level(level), keyword)
};

EBW.with(|eb| {
Expand Down Expand Up @@ -307,15 +318,15 @@ impl crate::native::EventWriter<CommonSchemaProvider> for CommonSchemaProvider {
current_span: u64,
_parent_span: u64,
event_name: &str,
level: u8,
level: &tracing_core::Level,
keyword: u64,
event_tag: u32,
event: &tracing::Event<'_>,
) {
let es = if let Some(es) = self.find_set(level.into(), keyword) {
let es = if let Some(es) = self.find_set(Self::map_level(level), keyword) {
es
} else {
self.register_set(level.into(), keyword)
self.register_set(Self::map_level(level), keyword)
};

EBW.with(|eb| {
Expand Down
Loading

0 comments on commit 12aafc8

Please sign in to comment.