O middleware accesslog para a estrutura da web Iris fornece registro detalhado para solicitações HTTP recebidas. Este middleware é altamente configurável e pode registrar vários aspectos da solicitação e resposta, incluindo campos personalizados.
Para usar o middleware accesslog, você precisa importá-lo em seu aplicativo Iris:
import ( "github.com/kataras/iris/v12" "github.com/kataras/iris/v12/middleware/accesslog" )
Aqui está um exemplo básico de como usar o middleware accesslog em uma aplicação 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") }
Você pode definir o destino de saída dos logs usando as funções Arquivo ou Novo:
ac := accesslog.File("./access.log") // or ac := accesslog.New(os.Stdout)
O formato de registro padrão é:
Time|Latency|Code|Method|Path|IP|Path Params Query Fields|Bytes Received|Bytes Sent|Request|Response|
Você pode personalizar o formato do log usando diferentes formatadores:
ac.SetFormatter(&accesslog.JSON{ Indent: " ", HumanTime: true, })
ac.SetFormatter(&accesslog.CSV{})
ac.SetFormatter(&accesslog.Template{Text: "{{.Code}}"})
Você pode adicionar campos personalizados às entradas de 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) } })
Ative o registro assíncrono para melhorar o desempenho:
ac.Async = true
Você pode ignorar o registro de rotas ou condições específicas:
app.UseRouter(accesslog.SkipHandler)
Você pode fazer login em vários destinos usando io.MultiWriter:
ac.SetOutput(io.MultiWriter(os.Stdout, accesslog.File("./access.log")))
Você pode definir um relógio personalizado para os registros de data e hora do log, útil para testes:
ac.Clock = accesslog.TClock(time.Now())
Integre o middleware do accesslog com outros 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 o exemplo de rotação de log para obter mais detalhes.
Consulte os campos personalizados e o exemplo de modelo para obter mais detalhes.
Consulte o exemplo do agente de log para obter mais detalhes.
O middleware accesslog para Iris é uma ferramenta poderosa para registrar solicitações e respostas HTTP. Com suas opções flexíveis de configuração e suporte para campos e formatos personalizados, ele pode ser adaptado para atender às necessidades de qualquer aplicação.
Para obter mais exemplos e uso detalhado, consulte a documentação oficial do Iris.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3