This moves the usage of `rt::at_exit` to `libc::atexit` instead. It's not
looking like it's likely for `rt::at_exit` to be stable at 1.0, and
`libc::atexit` is at least supported on major platforms.
We may want to add things to the information provided to `log` and
`enabled`. slf4j provides the ability to pass `Marker` objects when
logging which can be used for more advanced filtering for example.
It defaults to module_path!() as before, but it's useful to be able to
override the default in certain context, for example, when logging web
server request events to a specific target different than the normal
module path.
I initially added this to make testing loggers easier, but I think it's
a bad idea to keep in the future since we're essentially prohibited from
adding fields. We can potentially add a function or macro go liblog to
"log" to a specified logger instead of the global one in the future.
We can't make it fully private but we can mangle the field names and
hide them from the docs. It's important to keep the internals of
`LogLocation` hidden so that we have the option of e.g. adding the
function name if such a syntax extension's added to rustc or switching
the implementation to look at debug info.