log: add an "error" parameter to all low-level logging calls and intrdouce log_error_errno() as log calls that take error numbers
This change has two benefits:
- The format string %m will now resolve to the specified error (or to
errno if the specified error is 0. This allows getting rid of a ton of
strerror() invocations, a function that is not thread-safe.
- The specified error can be passed to the journal in the ERRNO= field.
Now of course, we just need somebody to convert all cases of this:
log_error("Something happened: %s", strerror(-r));
into thus:
log_error_errno(-r, "Something happened: %m");
This commit is contained in:
@@ -32,7 +32,7 @@ int main(int argc, char* argv[]) {
|
||||
|
||||
r = hostname_setup();
|
||||
if (r < 0)
|
||||
fprintf(stderr, "hostname: %s\n", strerror(-r));
|
||||
log_error_errno(-r, "hostname: %m");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user