diff options
Diffstat (limited to 'src/basic/log.c')
-rw-r--r-- | src/basic/log.c | 43 |
1 files changed, 30 insertions, 13 deletions
diff --git a/src/basic/log.c b/src/basic/log.c index c484ff57f6..31ecbd1d1b 100644 --- a/src/basic/log.c +++ b/src/basic/log.c @@ -351,7 +351,13 @@ static int write_to_console( get_log_colors(LOG_PRI(level), &on, &off, NULL); if (show_location) { - (void) snprintf(location, sizeof location, "(%s:%i) ", file, line); + const char *lon = "", *loff = ""; + if (show_color) { + lon = ANSI_HIGHLIGHT_YELLOW4; + loff = ANSI_NORMAL; + } + + (void) snprintf(location, sizeof location, "%s%s:%i%s: ", lon, file, line, loff); iovec[n++] = IOVEC_MAKE_STRING(location); } @@ -1232,18 +1238,29 @@ int log_syntax_internal( if (unit) unit_fmt = getpid_cached() == 1 ? "UNIT=%s" : "USER_UNIT=%s"; - if (config_file) - return log_struct_internal( - LOG_REALM_PLUS_LEVEL(LOG_REALM_SYSTEMD, level), - error, - file, line, func, - "MESSAGE_ID=" SD_MESSAGE_INVALID_CONFIGURATION_STR, - "CONFIG_FILE=%s", config_file, - "CONFIG_LINE=%u", config_line, - LOG_MESSAGE("%s:%u: %s", config_file, config_line, buffer), - unit_fmt, unit, - NULL); - else if (unit) + if (config_file) { + if (config_line > 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_FILE=%s", config_file, + "CONFIG_LINE=%u", config_line, + LOG_MESSAGE("%s:%u: %s", config_file, config_line, buffer), + unit_fmt, unit, + NULL); + else + return log_struct_internal( + LOG_REALM_PLUS_LEVEL(LOG_REALM_SYSTEMD, level), + error, + file, line, func, + "MESSAGE_ID=" SD_MESSAGE_INVALID_CONFIGURATION_STR, + "CONFIG_FILE=%s", config_file, + LOG_MESSAGE("%s: %s", config_file, buffer), + unit_fmt, unit, + NULL); + } else if (unit) return log_struct_internal( LOG_REALM_PLUS_LEVEL(LOG_REALM_SYSTEMD, level), error, |