iris请求日志记录配置(控制台)

目录结构

主目录requestLogger

  1. —— main.go

代码示例

main.go

  1. package main
  2. import (
  3. "github.com/kataras/iris"
  4. "github.com/kataras/iris/middleware/logger"
  5. )
  6. func main() {
  7. app := iris.New()
  8. customLogger := logger.New(logger.Config{
  9. //状态显示状态代码
  10. Status: true,
  11. // IP显示请求的远程地址
  12. IP: true,
  13. //方法显示http方法
  14. Method: true,
  15. // Path显示请求路径
  16. Path: true,
  17. // Query将url查询附加到Path。
  18. Query: true,
  19. //Columns:true,
  20. // 如果不为空然后它的内容来自`ctx.Values(),Get("logger_message")
  21. //将添加到日志中。
  22. MessageContextKeys: []string{"logger_message"},
  23. //如果不为空然后它的内容来自`ctx.GetHeader(“User-Agent”)
  24. MessageHeaderKeys: []string{"User-Agent"},
  25. })
  26. app.Use(customLogger)
  27. h := func(ctx iris.Context) {
  28. ctx.Writef("Hello from %s", ctx.Path())
  29. }
  30. app.Get("/", h)
  31. app.Get("/1", h)
  32. app.Get("/2", h)
  33. //因此,http错误有自己的处理程序
  34. //注册中间人应该手动完成。
  35. /*
  36. app.OnErrorCode(404 ,customLogger, func(ctx iris.Context) {
  37. ctx.Writef("My Custom 404 error page ")
  38. })
  39. */
  40. //或捕获所有http错误:
  41. app.OnAnyErrorCode(customLogger, func(ctx iris.Context) {
  42. //这应该被添加到日志中,因为`logger.Config#MessageContextKey`
  43. ctx.Values().Set("logger_message",
  44. "a dynamic message passed to the logs")
  45. ctx.Writef("My Custom error page")
  46. })
  47. // http://localhost:8080
  48. // http://localhost:8080/1
  49. // http://localhost:8080/2
  50. // http://lcoalhost:8080/notfoundhere
  51. //查看控制台上的输出
  52. app.Run(iris.Addr(":8080"), iris.WithoutServerError(iris.ErrServerClosed))
  53. }