diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/log.c | 26 |
1 files changed, 13 insertions, 13 deletions
@@ -173,6 +173,8 @@ void log_message (int level, const char *fmt, ...) syslog (level, "%s", str); #endif } else { + char *p; + nowtime = time (NULL); /* Format is month day hour:minute:second (24 time) */ strftime (time_string, TIME_LENGTH, "%b %d %H:%M:%S", @@ -182,22 +184,20 @@ void log_message (int level, const char *fmt, ...) syslog_level[level], time_string, (long int) getpid ()); - assert (log_file_fd >= 0); + /* + * Overwrite the '\0' and leave room for a trailing '\n' + * be added next. + */ + p = str + strlen(str); + vsnprintf (p, STRING_LENGTH - strlen(str) - 1, fmt, args); - ret = write (log_file_fd, str, strlen (str)); - if (ret == -1) { - log_message (LOG_WARNING, - "Could not write to log file"); - } + p = str + strlen(str); + *p = '\n'; + *(p+1) = '\0'; - vsnprintf (str, STRING_LENGTH, fmt, args); - ret = write (log_file_fd, str, strlen (str)); - if (ret == -1) { - log_message (LOG_WARNING, - "Could not write to log file"); - } + assert (log_file_fd >= 0); - ret = write (log_file_fd, "\n", 1); + ret = write (log_file_fd, str, strlen (str)); if (ret == -1) { log_message (LOG_WARNING, "Could not write to log file"); |