mirror of
https://github.com/kataras/iris.git
synced 2025-12-30 16:27:04 +00:00
Update to v3.0.0-beta.4 - Logger changes book, examples updated
This commit is contained in:
@@ -1,64 +1,9 @@
|
||||
## Middleware information
|
||||
|
||||
This folder contains a middleware for the build'n Iris logger but for the requests.
|
||||
This folder contains a middleware which is a bridge between Iris station's logger and http requests.
|
||||
|
||||
**Logs the incoming requests**
|
||||
|
||||
## How to use
|
||||
```go
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"github.com/kataras/iris"
|
||||
"github.com/kataras/iris/middleware/logger"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
iris.UseFunc(logger.Default())
|
||||
// or iris.Use(logger.DefaultHandler())
|
||||
// or iris.UseFunc(iris.HandlerFunc(logger.DefaultHandler())
|
||||
// or iris.Get("/", logger.Default(), func (ctx *iris.Context){})
|
||||
// or iris.Get("/", iris.HandlerFunc(logger.DefaultHandler()), func (ctx *iris.Context){})
|
||||
|
||||
// Custom settings:
|
||||
// ...
|
||||
// iris.UseFunc(logger.Custom(writer io.Writer, prefix string, flag int))
|
||||
// and so on...
|
||||
|
||||
// Custom options:
|
||||
// ...
|
||||
// iris.UseFunc(logger.Default(logger.Options{IP:false})) // don't log the ip
|
||||
// or iris.UseFunc(logger.Custom(writer io.Writer, prefix string, flag int, logger.Options{IP:false}))
|
||||
// and so on...
|
||||
|
||||
iris.Get("/", func(ctx *iris.Context) {
|
||||
ctx.Write("hello")
|
||||
})
|
||||
|
||||
iris.Get("/1", func(ctx *iris.Context) {
|
||||
ctx.Write("hello")
|
||||
})
|
||||
|
||||
iris.Get("/3", func(ctx *iris.Context) {
|
||||
ctx.Write("hello")
|
||||
})
|
||||
|
||||
// IF YOU WANT LOGGER TO LOGS THE HTTP ERRORS ALSO THEN:
|
||||
// FUTURE: iris.OnError(404, logger.Default(logger.Options{Latency: false}))
|
||||
|
||||
// NOW:
|
||||
errorLogger := logger.Default(logger.Options{Latency: false}) //here we just disable to log the latency, no need for error pages I think
|
||||
// yes we have options look at the logger.Options inside middleware/logger.go
|
||||
iris.OnError(404, func(ctx *iris.Context) {
|
||||
errorLogger.Serve(ctx)
|
||||
ctx.Write("My Custom 404 error page ")
|
||||
})
|
||||
//
|
||||
|
||||
println("Server is running at :80")
|
||||
iris.Listen(":80")
|
||||
|
||||
}
|
||||
|
||||
|
||||
```
|
||||
Read the logger section [here](https://kataras.gitbooks.io/iris/content/logger.html)
|
||||
|
||||
@@ -75,17 +75,20 @@ func (l *loggerMiddleware) Serve(ctx *iris.Context) {
|
||||
|
||||
//finally print the logs
|
||||
if l.options.Latency {
|
||||
l.Printf("%s %v %4v %s %s %s", date, status, latency, ip, method, path)
|
||||
l.Infof("%s %v %4v %s %s %s \n", date, status, latency, ip, method, path)
|
||||
} else {
|
||||
l.Printf("%s %v %s %s %s", date, status, ip, method, path)
|
||||
l.Infof("%s %v %s %s %s \n", date, status, ip, method, path)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func newLoggerMiddleware(loggerCfg config.Logger, options ...Options) *loggerMiddleware {
|
||||
loggerCfg = config.DefaultLogger().MergeSingle(loggerCfg)
|
||||
// Default returns the logger middleware as Handler with the default settings
|
||||
func New(theLogger *logger.Logger, options ...Options) iris.HandlerFunc {
|
||||
if theLogger == nil {
|
||||
theLogger = logger.New(config.DefaultLogger())
|
||||
}
|
||||
|
||||
l := &loggerMiddleware{Logger: logger.New(loggerCfg)}
|
||||
l := &loggerMiddleware{Logger: theLogger}
|
||||
|
||||
if len(options) > 0 {
|
||||
l.options = options[0]
|
||||
@@ -93,36 +96,5 @@ func newLoggerMiddleware(loggerCfg config.Logger, options ...Options) *loggerMid
|
||||
l.options = DefaultOptions()
|
||||
}
|
||||
|
||||
return l
|
||||
}
|
||||
|
||||
//all bellow are just for flexibility
|
||||
|
||||
// DefaultHandler returns the logger middleware with the default settings
|
||||
func DefaultHandler(options ...Options) iris.Handler {
|
||||
loggerCfg := config.DefaultLogger()
|
||||
return newLoggerMiddleware(loggerCfg, options...)
|
||||
}
|
||||
|
||||
// Default returns the logger middleware as HandlerFunc with the default settings
|
||||
func Default(options ...Options) iris.HandlerFunc {
|
||||
return DefaultHandler(options...).Serve
|
||||
}
|
||||
|
||||
// CustomHandler returns the logger middleware with customized settings
|
||||
// accepts 3 parameters
|
||||
// first parameter is the writer (io.Writer)
|
||||
// second parameter is the prefix of which the message will follow up
|
||||
// third parameter is the logger.Options
|
||||
func CustomHandler(loggerCfg config.Logger, options ...Options) iris.Handler {
|
||||
return newLoggerMiddleware(loggerCfg, options...)
|
||||
}
|
||||
|
||||
// Custom returns the logger middleware as HandlerFunc with customized settings
|
||||
// accepts 3 parameters
|
||||
// first parameter is the writer (io.Writer)
|
||||
// second parameter is the prefix of which the message will follow up
|
||||
// third parameter is the logger.Options
|
||||
func Custom(loggerCfg config.Logger, options ...Options) iris.HandlerFunc {
|
||||
return CustomHandler(loggerCfg, options...).Serve
|
||||
return l.Serve
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user