replace zxq.co/ripple/hanayo
This commit is contained in:
55
vendor/github.com/johnniedoe/contrib/commonlog/commonlog.go
generated
vendored
Normal file
55
vendor/github.com/johnniedoe/contrib/commonlog/commonlog.go
generated
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
package commonlog
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
"io"
|
||||
"strconv"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/gin-gonic/gin"
|
||||
)
|
||||
|
||||
// Instances a Logger middleware that will write the logs to gin.DefaultWriter
|
||||
// By default gin.DefaultWriter = os.Stdout
|
||||
func New() gin.HandlerFunc {
|
||||
return NewWithWriter(gin.DefaultWriter)
|
||||
}
|
||||
|
||||
// Instance a Logger middleware with the specified writter buffer.
|
||||
// Example: os.Stdout, a file opened in write mode, a socket...
|
||||
func NewWithWriter(out io.Writer) gin.HandlerFunc {
|
||||
pool := &sync.Pool{
|
||||
New: func() interface{} {
|
||||
buf := new(bytes.Buffer)
|
||||
return buf
|
||||
},
|
||||
}
|
||||
return func(c *gin.Context) {
|
||||
path := c.Request.URL.Path
|
||||
|
||||
// Process request
|
||||
c.Next()
|
||||
|
||||
//127.0.0.1 user-identifier frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326
|
||||
w := pool.Get().(*bytes.Buffer)
|
||||
w.Reset()
|
||||
w.WriteString(c.ClientIP())
|
||||
w.WriteString(" ")
|
||||
w.WriteString(time.Now().Format("[02/Jan/2006:15:04:05 -0700] "))
|
||||
w.WriteString("\"")
|
||||
w.WriteString(c.Request.Method)
|
||||
w.WriteString(" ")
|
||||
w.WriteString(path)
|
||||
w.WriteString(" ")
|
||||
w.WriteString(c.Request.Proto)
|
||||
w.WriteString("\" ")
|
||||
w.WriteString(strconv.Itoa(c.Writer.Status()))
|
||||
w.WriteString(" ")
|
||||
w.WriteString(strconv.Itoa(c.Writer.Size()))
|
||||
w.WriteString("\n")
|
||||
|
||||
w.WriteTo(out)
|
||||
pool.Put(w)
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user