# Baa 日志
baa 中的日志默認使用的是標準包中的 `log`,可以通過 `DI` 來替換全局的日志器。
新的日志器要求實現 `baa.Logger` 接口,并且注冊的 `DI` 名稱為 `logger`,如果不更換默認的日志則名稱任意。
## 日志接口
```
type Logger interface {
Print(v ...interface{})
Printf(format string, v ...interface{})
Println(v ...interface{})
Fatal(v ...interface{})
Fatalf(format string, v ...interface{})
Fatalln(v ...interface{})
Panic(v ...interface{})
Panicf(format string, v ...interface{})
Panicln(v ...interface{})
}
```
這個接口其實是對標準包`log`的抽象,最基礎的日志接口。
## 日志方法
假如你實現了新的日志管理,使用的姿勢像這樣:
```
app := baa.New()
app.SetDI("logger", newLogger.New())
app.Get("/", func(c *baa.Context) {
lg := c.DI("logger").(*newLogger.Logger)
lg.Println("log line")
})
```
其中 `newLogger` 意為你實現的新的日志器。
### 記錄日志
`func (b *Baa) Logger() Logger`
baa 提供的全局日志器可以通過`app.Logger()` 獲得到。
舉個例子:
```
app := baa.New()
app.Get("/", func(c *baa.Context) {
lg := c.Baa().Logger()
lg.Println("log line")
})
```
除了 `Println` 你可以使用日志接口中的所有方法。