El middleware de registro de acceso para el marco web Iris proporciona un registro detallado de las solicitudes HTTP entrantes. Este middleware es altamente configurable y puede registrar varios aspectos de la solicitud y la respuesta, incluidos campos personalizados.
Para utilizar el middleware de registro de acceso, debe importarlo en su aplicación Iris:
import ( "github.com/kataras/iris/v12" "github.com/kataras/iris/v12/middleware/accesslog" )
Aquí hay un ejemplo básico de cómo utilizar el middleware de registro de acceso en una aplicación Iris:
package main import ( "github.com/kataras/iris/v12" "github.com/kataras/iris/v12/middleware/accesslog" ) func makeAccessLog() *accesslog.AccessLog { ac := accesslog.File("./access.log") ac.Delim = '|' ac.TimeFormat = "2006-01-02 15:04:05" ac.Async = false ac.IP = true ac.BytesReceivedBody = true ac.BytesSentBody = true ac.BytesReceived = false ac.BytesSent = false ac.RequestBody = true ac.ResponseBody = false ac.KeepMultiLineError = true ac.PanicLog = accesslog.LogHandler ac.SetFormatter(&accesslog.JSON{ Indent: " ", HumanTime: true, }) return ac } func main() { ac := makeAccessLog() defer ac.Close() app := iris.New() app.UseRouter(ac.Handler) app.Get("/", func(ctx iris.Context) { ctx.WriteString("OK") }) app.Listen(":8080") }
Puedes configurar el destino de salida de los registros usando las funciones Archivo o Nuevo:
ac := accesslog.File("./access.log") // or ac := accesslog.New(os.Stdout)
El formato de registro predeterminado es:
Time|Latency|Code|Method|Path|IP|Path Params Query Fields|Bytes Received|Bytes Sent|Request|Response|
Puedes personalizar el formato de registro usando diferentes formateadores:
ac.SetFormatter(&accesslog.JSON{ Indent: " ", HumanTime: true, })
ac.SetFormatter(&accesslog.CSV{})
ac.SetFormatter(&accesslog.Template{Text: "{{.Code}}"})
Puedes agregar campos personalizados a las entradas del registro:
ac.AddFields(func(ctx iris.Context, f *accesslog.Fields) { for k, v := range ctx.Request().Header { value := strings.Join(v, ", ") f.Set("request.header." k, value) } })
Habilite el registro asincrónico para mejorar el rendimiento:
ac.Async = true
Puedes omitir el registro para rutas o condiciones específicas:
app.UseRouter(accesslog.SkipHandler)
Puedes iniciar sesión en múltiples destinos usando io.MultiWriter:
ac.SetOutput(io.MultiWriter(os.Stdout, accesslog.File("./access.log")))
Puedes configurar un reloj personalizado para las marcas de tiempo de registro, útil para realizar pruebas:
ac.Clock = accesslog.TClock(time.Now())
Integrar el middleware de registro de acceso con otros middlewares:
app.UseRouter(ac.Handler) app.UseRouter(otherMiddleware)
ac := accesslog.File("access_log.json") ac.SetFormatter(&accesslog.JSON{ Indent: " ", HumanTime: true, }) app.UseRouter(ac.Handler)
Consulte el ejemplo de rotación de registros para obtener más detalles.
Consulta los campos personalizados y el ejemplo de plantilla para obtener más detalles.
Consulte el ejemplo del intermediario de registros para obtener más detalles.
El middleware de registro de acceso para Iris es una poderosa herramienta para registrar solicitudes y respuestas HTTP. Con sus opciones de configuración flexibles y compatibilidad con campos y formatos personalizados, se puede adaptar para satisfacer las necesidades de cualquier aplicación.
Para obtener más ejemplos y uso detallado, consulte la documentación oficial de Iris.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3