extensible - slog crate provides core functionality: very basic
and portable standard feature-set based on open traits. This allows
implementing new features that can be independently published.

composable - traits that slog exposes to provide extensibility
are designed to be easy to efficiently reuse and combine. By combining
different functionalities every application can specify when, where and
how exactly process logging data from the application and it's
dependencies.

flexible - slog does not constrain logging to just one globally
registered backend. Parts of your application can handle logging
in a customized way, or completely independently.

structured and both human and machine readable - By keeping the
key-value data format and retaining its type information, meaning of logging
data is preserved. Data can be serialized to machine readable formats like
JSON and send it to data-mining system for further analysis etc. On the
other hand, when presenting on screen, logging information can be presented
in aesthetically pleasing and easy to understand way.

contextual - slog's Logger objects carry set of key-value data
pairs that contains the context of logging - information that otherwise
would have to be repeated in every logging statement.

Note: At compile time slog by default removes trace and debug level
statements in release builds, and trace level records in debug builds. This
makes trace and debug level logging records practically free, which
should encourage using them freely. If you want to enable trace/debug
messages or raise the compile time logging level limit, use the following in
your Cargo.toml:

You can consider using slog-json instead of slog-term.
slog-term only coincidently fits the role of a file output format. A
proper slog-file crate with suitable format, log file rotation and other
file-logging related features would be awesome. Contributions are welcome!

Why is this not an existing crate? Because there are multiple ways to
achieve the same result, and each application might come with it's own
variation. Supporting a more general solution is a maintenance effort.
There is also nothing stopping anyone from publishing their own crate
implementing it.