mirror of
https://git.haproxy.org/git/haproxy.git/
synced 2025-09-21 22:01:31 +02:00
MINOR: log: add time second fraction field to rfc5424 log timestamp.
This patch adds the time second fraction in microseconds as supported by the rfc.
This commit is contained in:
parent
4f58926352
commit
9f9b22c4f1
@ -137,7 +137,7 @@ char *lf_port(char *dst, const struct sockaddr *sockaddr, size_t size, const str
|
||||
/*
|
||||
* Function to handle log header building (exported for sinks)
|
||||
*/
|
||||
char *update_log_hdr_rfc5424(const time_t time);
|
||||
char *update_log_hdr_rfc5424(const time_t time, suseconds_t frac);
|
||||
char *update_log_hdr(const time_t time);
|
||||
char * get_format_pid_sep1(int format, size_t *len);
|
||||
char * get_format_pid_sep2(int format, size_t *len);
|
||||
|
12
src/log.c
12
src/log.c
@ -1483,10 +1483,11 @@ char *update_log_hdr(const time_t time)
|
||||
* the beginning of logheader_rfc5424 once a second and return the pointer
|
||||
* to the first character after it.
|
||||
*/
|
||||
char *update_log_hdr_rfc5424(const time_t time)
|
||||
char *update_log_hdr_rfc5424(const time_t time, const suseconds_t frac)
|
||||
{
|
||||
static THREAD_LOCAL long tvsec;
|
||||
const char *gmt_offset;
|
||||
char c;
|
||||
|
||||
if (unlikely(time != tvsec || logheader_rfc5424_end == NULL)) {
|
||||
/* this string is rebuild only once a second */
|
||||
@ -1498,7 +1499,7 @@ char *update_log_hdr_rfc5424(const time_t time)
|
||||
gmt_offset = get_gmt_offset(time, &tm);
|
||||
|
||||
hdr_len = snprintf(logheader_rfc5424, global.max_syslog_len,
|
||||
"<<<<>1 %4d-%02d-%02dT%02d:%02d:%02d%.3s:%.2s %s ",
|
||||
"<<<<>1 %4d-%02d-%02dT%02d:%02d:%02d.000000%.3s:%.2s %s ",
|
||||
tm.tm_year+1900, tm.tm_mon+1, tm.tm_mday,
|
||||
tm.tm_hour, tm.tm_min, tm.tm_sec,
|
||||
gmt_offset, gmt_offset+3,
|
||||
@ -1513,6 +1514,11 @@ char *update_log_hdr_rfc5424(const time_t time)
|
||||
logheader_rfc5424_end = logheader_rfc5424 + hdr_len;
|
||||
}
|
||||
|
||||
/* utoa_pad add a trailing '\0' so we save the char to restore */
|
||||
c = logheader_rfc5424[33];
|
||||
utoa_pad(frac, logheader_rfc5424 + 27, 7);
|
||||
logheader_rfc5424[33] = c;
|
||||
|
||||
logheader_rfc5424_end[0] = 0; // ensure we get rid of any previous attempt
|
||||
|
||||
return logheader_rfc5424_end;
|
||||
@ -1629,7 +1635,7 @@ static inline void __do_send_log(struct logsrv *logsrv, int nblogger, char *pid_
|
||||
|
||||
case LOG_FORMAT_RFC5424:
|
||||
hdr = logheader_rfc5424;
|
||||
hdr_ptr = update_log_hdr_rfc5424(time);
|
||||
hdr_ptr = update_log_hdr_rfc5424(time, date.tv_usec);
|
||||
sd_max = sd_size; /* the SD part allowed only in RFC5424 */
|
||||
break;
|
||||
|
||||
|
@ -182,7 +182,7 @@ ssize_t __sink_write(struct sink *sink, const struct ist msg[], size_t nmsg,
|
||||
}
|
||||
else if (sink->fmt == SINK_FMT_RFC5424) {
|
||||
pfx[npfx].ptr = logheader_rfc5424;
|
||||
pfx[npfx].len = update_log_hdr_rfc5424(date.tv_sec) - pfx[npfx].ptr;
|
||||
pfx[npfx].len = update_log_hdr_rfc5424(date.tv_sec, date.tv_usec) - pfx[npfx].ptr;
|
||||
log_format = LOG_FORMAT_RFC5424;
|
||||
}
|
||||
else {
|
||||
|
Loading…
x
Reference in New Issue
Block a user