34 lines
598 B
Go
34 lines
598 B
Go
package logbuffer
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/gin-gonic/gin"
|
|
"time"
|
|
)
|
|
|
|
func UseLogBuffer(queue *Queue) gin.HandlerFunc {
|
|
return gin.LoggerWithFormatter(func(param gin.LogFormatterParams) string {
|
|
output := fmt.Sprintf("%s - [%s] \"%s %s %s %d %s \"%s\" %s\"\n",
|
|
param.ClientIP,
|
|
param.TimeStamp.Format(time.RFC1123),
|
|
param.Method,
|
|
param.Path,
|
|
param.Request.Proto,
|
|
param.StatusCode,
|
|
param.Latency,
|
|
param.Request.UserAgent(),
|
|
param.ErrorMessage,
|
|
)
|
|
|
|
// Write the output to our queue
|
|
queue.push(output)
|
|
queue.Limit(200)
|
|
|
|
// Return nothing
|
|
return ""
|
|
})
|
|
}
|
|
|
|
|
|
|