mirror of
https://github.com/hkalexling/Mango.git
synced 2025-08-04 03:45:32 -04:00
27 lines
572 B
Crystal
27 lines
572 B
Crystal
require "kemal"
|
|
require "./logger"
|
|
|
|
class LogHandler < Kemal::BaseLogHandler
|
|
def initialize(@logger : MLogger)
|
|
end
|
|
|
|
def call(env)
|
|
elapsed_time = Time.measure { call_next env }
|
|
elapsed_text = elapsed_text elapsed_time
|
|
msg = "#{env.response.status_code} #{env.request.method}" \
|
|
" #{env.request.resource} #{elapsed_text}"
|
|
@logger.debug(msg)
|
|
env
|
|
end
|
|
|
|
def write(msg)
|
|
@logger.debug(msg)
|
|
end
|
|
|
|
private def elapsed_text(elapsed)
|
|
millis = elapsed.total_milliseconds
|
|
return "#{millis.round(2)}ms" if millis >= 1
|
|
"#{(millis * 1000).round(2)}µs"
|
|
end
|
|
end
|