From: Maciej Slodczyk Date: Thu, 2 Aug 2018 09:18:33 +0000 (+0200) Subject: util: format out of order message as a log entry X-Git-Tag: submit/sorting/20180823.145108~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fchanges%2F90%2F185790%2F4;p=platform%2Fcore%2Fsystem%2Fdlog.git util: format out of order message as a log entry To prevent SDK log parsers errors, when an out of order message is printed, it has to be formatted in the same way as other entries. Change-Id: I004bb4a3d1dc58b1a81f80e668efe71f07987bdf Signed-off-by: Maciej Slodczyk --- diff --git a/src/shared/log_file.c b/src/shared/log_file.c index 438f803..17d4b8d 100644 --- a/src/shared/log_file.c +++ b/src/shared/log_file.c @@ -228,13 +228,22 @@ int logfile_write_with_rotation(const struct logger_entry *e, struct log_file *f extract_timestamp(e, sort_by, &ts); if (ts.tv_sec < file->prev_sec || (ts.tv_sec == file->prev_sec && ts.tv_nsec < file->prev_nsec)) { - char buffer[512]; - int r = snprintf(buffer, sizeof buffer, "INFO: Following log entry could not be sorted and is out of order.\n"); - written_bytes = write(file->fd, buffer, r); + struct logger_entry_with_msg msg; + memcpy(&msg, e, sizeof *e); + int r = snprintf(msg.msg, sizeof msg.msg, "%s%c%s", log_buffer_get_tag(e), '\0', "INFO: Following log entry could not be sorted and is out of order."); - if (written_bytes < 0) { - ERR("unable to write out-of-order message %m"); + if (r < 0) { + ERR("unable to format out-of-order message %m"); written_bytes = 0; + } else { + msg.header.len = r + sizeof *e; + + written_bytes += log_print_log_line(file->format, file->fd, &msg.header); + + if (written_bytes < 0) { + ERR("unable to write out-of-order message %m"); + written_bytes = 0; + } } }