HTTP.coffee 1012 B

123456789101112131415161718192021222324252627282930
  1. settings = require("settings-sharelatex")
  2. logger = require "logger-sharelatex"
  3. os = require("os")
  4. metrics = require("../Metrics")
  5. module.exports.logger = (req, res, next) ->
  6. startTime = new Date()
  7. end = res.end
  8. res.end = () ->
  9. end.apply(this, arguments)
  10. responseTime = new Date() - startTime
  11. routePath = req.route.path.toString().replace(/\//g, '-').slice(1)
  12. processName = if settings.internal.web.name? then "web-#{settings.internal.web.name}" else "web"
  13. key = "#{os.hostname()}.#{processName}.#{routePath}".toLowerCase().trim()
  14. logger.log
  15. req:
  16. url: req.originalUrl || req.url
  17. method: req.method
  18. key:key
  19. referrer: req.headers['referer'] || req.headers['referrer']
  20. "remote-addr": req.ip || req.socket?.socket?.remoteAddress || req.socket?.remoteAddress
  21. "user-agent": req.headers["user-agent"]
  22. "content-length": req.headers["content-length"]
  23. res:
  24. "content-length": res._headers?["content-length"]
  25. "response-time": responseTime
  26. "http request"
  27. next()