Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
emit
This crate implements a structured logging API similar to the one in Serilog. In systems programming, this style of logging is most often found in Windows' ETW. Web and distributed applications use similar techniques to improve machine-readabililty when dealing with large event volumes.
"Emitted" log events consist of a format and list of named properties, as in the eminfo!()
call below.
extern crate emit;
use env;
use PipelineBuilder;
use seq;
The named arguments are captured as key/value properties that can be rendered in a structured format such as JSON:
This makes log searches in an appropriate back-end collector much simpler:
Events can be written to io::stdout
in a number of formats:
use StdioCollector;
use PlainTextFormatter;
let _flush = new
.write_to
.init;
Produces:
2016-03-24T05:03:36Z INFO Hello, "nblumhardt"!
What about the log
crate?
The log!()
macros are the established way to capture diagnostic events in Rust today. However, log
destructively renders events into text:
info!;
There's no way for a log processing system to later pull the username value from this message, except through handwritten parsers/regular expressions.
The idea of emit
is that rendering can happen at any point - but the original values are preserved for easy machine processing as well.
To keep these two worlds in harmony, emit
will be able to mirror events to log
(#7).