Implement Default
for formatters and Facility
; get hostname automatically
#51
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR implements
Default
forFacility
,Formatter3164
, andFormatter5424
.Motivation
Most of the
Formatter*
fields are about the host environment. The only one that the application really needs to fill in isfacility
. By implementingDefault
forFormatter*
, constructing one is made much easier:Defaults
The default
Facility
isLOG_USER
, as specified by POSIX.Formatter defaults are as follows:
facility
:LOG_USER
.hostname
: Automatically detected using thehostname
crate, if possible.process
: Automatically detected usingstd::env::current_exe
, or if that fails, an empty string.pid
: Automatically detected usinglibc::getpid
.syslog::init
In addition to the
Default
implementations, theinit
function now fills in thehostname
in the same way.Dependencies & MSRV
This PR adds a dependency on the
hostname
crate.This PR does not change the minimum supported Rust version of this crate, which appears to be 1.31. (Even without this PR, this crate fails to build on Rust ≤ 1.30.)