The provider crate requires event and provider metadata to have
static lifetime, but I cannot see why this is necessary--ETW will
consume this metadata synchronously as part of the EventWrite call.
The macros crate will always ensure that this metadata is static,
which is a good practice when possible. But for dynamically-generated
events and providers, static is a problem.
Fixes a couple instances where previously diagnostic output could be
written to stdout or stderr in production, rather than being locked
behind the "dev" feature.
Signed-off-by: Kevin Parsons <kevpar@microsoft.com>
This changes the default event level if none is specified from INFO (4)
to VERBOSE (5). This matches the implementation in TraceLoggingProvider.h,
which uses VERBOSE as well.
Signed-off-by: Kevin Parsons <kevpar@microsoft.com>
Allow &[bool], since Rust has committed to a 1-byte representation of `bool`.
Re-export several types from `widestring` so that code generated by the
`trace_logging_provider` macro no longer has a direct reference to the
`widestring` crate.
Update docs.
There are no code changes in this. There are changes that need to be made,
but I wanted to move this to the correct place (github.com/microsoft) before
making those changes.
I wrote 100% of this code, and I wrote it while I was employed by Microsoft
in May 2020. Microsoft has all rights to this code.