diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-12-10 11:56:05 +0100 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2020-12-10 13:00:02 +0100 |
commit | d401a5e41174e819304d69e12b43d3ab323ae8eb (patch) | |
tree | f8ec6ee8d4a9cbdb05a80324a84bf2856d1ac1f8 /src/shared | |
parent | 9e36b885b894f1b2a53fa234a238e736582021c4 (diff) | |
download | systemd-d401a5e41174e819304d69e12b43d3ab323ae8eb.tar.gz |
json: log location also when there is no file
E.g. in nss-resolve it is still useful to print the location of the error:
src/test/test-nss.c:231: dlsym(0x0x1dc6fb0, _nss_resolve_gethostbyname2_r) → 0x0x7fdbfc53f626
(string):1:40: JSON field ifindex is out of bounds for an interface index.
I opted to use a partially duplicated if condition to avoid nesting. It's nice
to have the log calls vertically aligned. The compiler will optimize this nicely.
Diffstat (limited to 'src/shared')
-rw-r--r-- | src/shared/json.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/src/shared/json.c b/src/shared/json.c index 28fe482749..655bbcc6bb 100644 --- a/src/shared/json.c +++ b/src/shared/json.c @@ -3854,6 +3854,16 @@ int json_log_internal( "CONFIG_COLUMN=%u", source_column, LOG_MESSAGE("%s:%u:%u: %s", source, source_line, source_column, buffer), NULL); + else if (source_line > 0 && source_column > 0) + return log_struct_internal( + LOG_REALM_PLUS_LEVEL(LOG_REALM_SYSTEMD, level), + error, + file, line, func, + "MESSAGE_ID=" SD_MESSAGE_INVALID_CONFIGURATION_STR, + "CONFIG_LINE=%u", source_line, + "CONFIG_COLUMN=%u", source_column, + LOG_MESSAGE("(string):%u:%u: %s", source_line, source_column, buffer), + NULL); else return log_struct_internal( LOG_REALM_PLUS_LEVEL(LOG_REALM_SYSTEMD, level), |