X-Git-Url: https://git.sesse.net/?p=cubemap;a=blobdiff_plain;f=accesslog.cpp;h=3e1ebe522ff3f5d462f42659788993b7bffa368f;hp=9cd5be0ad7735cc30fe8769adada8d3509f8a079;hb=c59d0e9dca008914d5498985e5d2f8611b82fe04;hpb=44f74dbce7ed19d8218318ce5ecc0da2fb4ae9f0 diff --git a/accesslog.cpp b/accesslog.cpp index 9cd5be0..3e1ebe5 100644 --- a/accesslog.cpp +++ b/accesslog.cpp @@ -53,18 +53,24 @@ void AccessLogThread::do_work() if (logfp != NULL) { // Do the actual writes. - time_t now = time(NULL); - for (size_t i = 0; i < writes.size(); ++i) { - fprintf(logfp, "%llu %s %s %d %llu %llu %llu\n", - (long long unsigned)(writes[i].connect_time), - writes[i].remote_addr.c_str(), - writes[i].url.c_str(), - int(now - writes[i].connect_time), - (long long unsigned)(writes[i].bytes_sent), - (long long unsigned)(writes[i].bytes_lost), - (long long unsigned)(writes[i].num_loss_events)); + timespec now; + if (clock_gettime(CLOCK_MONOTONIC_COARSE, &now) == -1) { + log_perror("clock_gettime(CLOCK_MONOTONIC_COARSE)"); + } else { + for (size_t i = 0; i < writes.size(); ++i) { + fprintf(logfp, "%llu %s %s %d %llu %llu %llu \"%s\" \"%s\"\n", + (long long unsigned)(writes[i].connect_time.tv_sec), + writes[i].remote_addr.c_str(), + writes[i].url.c_str(), + int(now.tv_sec - writes[i].connect_time.tv_sec), // Rather coarse. + (long long unsigned)(writes[i].bytes_sent), + (long long unsigned)(writes[i].bytes_lost), + (long long unsigned)(writes[i].num_loss_events), + writes[i].referer.c_str(), + writes[i].user_agent.c_str()); + } + fflush(logfp); } - fflush(logfp); } // Wait until we are being woken up, either to quit or because