@@ -15,8 +15,9 @@ import (
1515)
1616
1717type middleware struct {
18- enabled bool
19- verbose bool
18+ enabled bool
19+ verbose bool
20+ enabledOtherParameter bool
2021}
2122
2223type Option func (m * middleware )
@@ -35,11 +36,20 @@ func WithVerbose(on bool) Option {
3536 }
3637}
3738
39+ // WithEnabledOtherParameter configures the middleware to log request Path, IP, Request header and Params.
40+ func WithEnabledOtherParameter (on bool ) Option {
41+ return func (m * middleware ) {
42+ m .enabledOtherParameter = on
43+ }
44+ }
45+
3846// WithEnv configures the middleware using the environment variable value.
3947// For example, WithEnv("BUNDEBUG"):
4048// - BUNDEBUG=0 - disables the middleware.
4149// - BUNDEBUG=1 - enables the middleware.
4250// - BUNDEBUG=2 - enables the middleware and verbose mode.
51+ // - BUNDEBUG=3 - enables the middleware and logs request heraders , path, ip and params.
52+
4353func FromEnv (key string ) Option {
4454 if key == "" {
4555 key = "BUNDEBUG"
@@ -48,14 +58,16 @@ func FromEnv(key string) Option {
4858 if env , ok := os .LookupEnv (key ); ok {
4959 m .enabled = env != "" && env != "0"
5060 m .verbose = env == "2"
61+ m .enabledOtherParameter = env == "3"
5162 }
5263 }
5364}
5465
5566func NewMiddleware (opts ... Option ) bunrouter.MiddlewareFunc {
5667 c := & middleware {
57- enabled : true ,
58- verbose : true ,
68+ enabled : true ,
69+ verbose : true ,
70+ enabledOtherParameter : false ,
5971 }
6072 for _ , opt := range opts {
6173 opt (c )
@@ -94,9 +106,12 @@ func (m *middleware) Middleware(next bunrouter.HandlerFunc) bunrouter.HandlerFun
94106 formatStatus (statusCode ),
95107 fmt .Sprintf (" %10s " , dur .Round (time .Microsecond )),
96108 formatMethod (req .Method ),
97- req .URL .String (),
98109 )
99110
111+ if m .enabledOtherParameter {
112+ args = append (args , req .URL .String (), req .RemoteAddr )
113+ }
114+
100115 if err != nil {
101116 typ := reflect .TypeOf (err ).String ()
102117 args = append (args ,
@@ -106,6 +121,12 @@ func (m *middleware) Middleware(next bunrouter.HandlerFunc) bunrouter.HandlerFun
106121 }
107122
108123 fmt .Println (args ... )
124+ if m .enabledOtherParameter {
125+ fmt .Println ("User-Agent:" , req .Header .Get ("User-Agent" ))
126+ fmt .Println ("Referer:" , req .Header .Get ("Referer" ))
127+ fmt .Println ("Query Params:" , req .URL .Query ())
128+ fmt .Println ("Body Params:" , req .PostForm )
129+ }
109130
110131 return err
111132 }
0 commit comments