reprogl

Форк
0
/
logger.go 
22 строки · 587.0 Байт
1
package middlewares
2

3
import (
4
	"net/http"
5

6
	"xelbot.com/reprogl/container"
7
	pkghttp "xelbot.com/reprogl/http"
8
)
9

10
func AccessLog(next http.Handler, app *container.Application) http.Handler {
11
	return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
12
		addr := container.RealRemoteAddress(r)
13

14
		next.ServeHTTP(w, r)
15
		lrw, ok := w.(pkghttp.LogResponseWriter)
16
		if ok {
17
			app.InfoLog.Printf("[%s] %s, %s %d %s\n", r.Method, addr, r.URL.RequestURI(), lrw.Status(), lrw.Duration())
18
		} else {
19
			app.InfoLog.Printf("[%s] %s, %s\n", r.Method, addr, r.URL.RequestURI())
20
		}
21
	})
22
}
23

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.