diff --git a/include/utils.h b/include/utils.h index eef9c42d..eecbc398 100644 --- a/include/utils.h +++ b/include/utils.h @@ -19,6 +19,7 @@ extern int show_raw; extern int resolve_hosts; extern int oneline; extern int timestamp; +extern int timestamp_short; extern char * _SL_; extern int max_flush_loops; extern int batch_mode; diff --git a/ip/ip.c b/ip/ip.c index 5f759d54..9b90707a 100644 --- a/ip/ip.c +++ b/ip/ip.c @@ -53,7 +53,7 @@ static void usage(void) " -f[amily] { inet | inet6 | ipx | dnet | bridge | link } |\n" " -4 | -6 | -I | -D | -B | -0 |\n" " -l[oops] { maximum-addr-flush-attempts } |\n" -" -o[neline] | -t[imestamp] | -b[atch] [filename] |\n" +" -o[neline] | -t[imestamp] | -t[short] | -b[atch] [filename] |\n" " -rc[vbuf] [size]}\n"); exit(-1); } @@ -232,6 +232,9 @@ int main(int argc, char **argv) ++oneline; } else if (matches(opt, "-timestamp") == 0) { ++timestamp; + } else if (matches(opt, "-tshort") == 0) { + ++timestamp; + ++timestamp_short; #if 0 } else if (matches(opt, "-numeric") == 0) { rtnl_names_numeric++; diff --git a/lib/utils.c b/lib/utils.c index 987377b6..64915f3a 100644 --- a/lib/utils.c +++ b/lib/utils.c @@ -32,6 +32,8 @@ #include "utils.h" +int timestamp_short = 0; + int get_integer(int *val, const char *arg, int base) { long res; @@ -772,14 +774,24 @@ __u8* hexstring_a2n(const char *str, __u8 *buf, int blen) int print_timestamp(FILE *fp) { struct timeval tv; - char *tstr; + struct tm *tm; - memset(&tv, 0, sizeof(tv)); gettimeofday(&tv, NULL); + tm = localtime(&tv.tv_sec); + + if (timestamp_short) { + char tshort[40]; + + strftime(tshort, sizeof(tshort), "%Y-%m-%dT%H:%M:%S", tm); + fprintf(fp, "[%s.%06ld] ", tshort, tv.tv_usec); + } else { + char *tstr = asctime(tm); + + tstr[strlen(tstr)-1] = 0; + fprintf(fp, "Timestamp: %s %ld usec\n", + tstr, tv.tv_usec); + } - tstr = asctime(localtime(&tv.tv_sec)); - tstr[strlen(tstr)-1] = 0; - fprintf(fp, "Timestamp: %s %ld usec\n", tstr, (long)tv.tv_usec); return 0; } diff --git a/man/man8/ip-monitor.8 b/man/man8/ip-monitor.8 index 68e83f1c..544b6256 100644 --- a/man/man8/ip-monitor.8 +++ b/man/man8/ip-monitor.8 @@ -16,6 +16,19 @@ ip-monitor, rtmon \- state monitoring ] .sp +.SH OPTIONS + +.TP +.BR "\-t" , " \-timestamp" +Prints timestamp before the event message on the separated line in format: + Timestamp:
usec + + +.TP +.BR "\-ts" , " \-tshort" +Prints short timestamp before the event message on the same line in format: + [--
T.] + .SH DESCRIPTION The .B ip