From: Eric Wong <e@80x24.org>
To: rack-devel@googlegroups.com
Subject: [PATCH] common_logger: rely on monotonic clock
Date: Thu, 29 Jun 2017 02:30:56 +0000 [thread overview]
Message-ID: <20170629023056.GA22961@untitled> (raw)
As with commit 2474e3a779a8d2b6 for Rack::Runtime,
Time.now is inaccurate if system time changes, so do not
rely on it if a monotonic clock is available.
---
The following changes since commit 0362a54dba92626582d42f3343c209b7cdb7e713:
Partially reverting 8a7a142d (2017-06-28 13:20:52 -0700)
are available in the git repository at:
git://80x24.org/rack logger-time
for you to fetch changes up to 743f29d845b627b6083eaf6380ec6442f7427de7:
common_logger: rely on monotonic clock (2017-06-29 02:25:00 +0000)
----------------------------------------------------------------
Eric Wong (1):
common_logger: rely on monotonic clock
lib/rack/common_logger.rb | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/lib/rack/common_logger.rb b/lib/rack/common_logger.rb
index ae41043..7855f0c 100644
--- a/lib/rack/common_logger.rb
+++ b/lib/rack/common_logger.rb
@@ -29,7 +29,7 @@ module Rack
end
def call(env)
- began_at = Time.now
+ began_at = Utils.clock_time
status, header, body = @app.call(env)
header = Utils::HeaderHash.new(header)
body = BodyProxy.new(body) { log(env, status, header, began_at) }
@@ -39,20 +39,19 @@ module Rack
private
def log(env, status, header, began_at)
- now = Time.now
length = extract_content_length(header)
msg = FORMAT % [
env['HTTP_X_FORWARDED_FOR'] || env["REMOTE_ADDR"] || "-",
env["REMOTE_USER"] || "-",
- now.strftime("%d/%b/%Y:%H:%M:%S %z"),
+ Time.now.strftime("%d/%b/%Y:%H:%M:%S %z"),
env[REQUEST_METHOD],
env[PATH_INFO],
env[QUERY_STRING].empty? ? "" : "?#{env[QUERY_STRING]}",
env[HTTP_VERSION],
status.to_s[0..3],
length,
- now - began_at ]
+ Utils.clock_time - began_at ]
logger = @logger || env[RACK_ERRORS]
# Standard library logger doesn't support write but it supports << which actually
--
EW
--
---
You received this message because you are subscribed to the Google Groups "Rack Development" group.
To unsubscribe from this group and stop receiving emails from it, send an email to rack-devel+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
next reply other threads:[~2017-06-29 2:30 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-29 2:30 Eric Wong [this message]
2017-07-25 0:23 ` [PATCH] common_logger: rely on monotonic clock Rafael Mendonça França
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-list from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://groups.google.com/group/rack-devel
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20170629023056.GA22961@untitled \
--to=rack-devel@googlegroups.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).