BLog4go Go高效日志庫(kù)
BLog4go 是高性能日志庫(kù)。創(chuàng)新地使用“邊解析邊輸出”方法進(jìn)行日志輸出,同時(shí)支持回調(diào)函數(shù)、日志淘汰和配置文件。可以解決高并發(fā),調(diào)用日志函數(shù)頻繁的情境下,日志庫(kù)造成的性能問(wèn)題。
快速啟動(dòng):
package main
import (
log "github.com/YoungPioneers/blog4go"
"fmt"
"os"
)
// optionally set user defined hook for logging
type MyHook struct {
something string
}
// when log-level exceed level, call the hook
// level is the level associate with that logging action.
// message is the formatted string already written.
func (self *MyHook) Fire(level log.Level, message string) {
fmt.Println(message)
}
func main() {
// init a file write using xml config file
err := log.NewFileWriterFromConfigAsFile("config.xml")
if nil != err {
fmt.Println(err.Error())
os.Exit(1)
}
defer log.Close()
// initialize your hook instance
hook := new(MyHook)
log.SetHook(hook) // writersFromConfig can be replaced with writers
log.SetHookLevel(log.INFO)
log.SetHookAsync(true) // hook will be called in async mode
// optionally set output colored
log.SetColored(true)
log.Debugf("Good morning, %s", "eddie")
log.Warn("It's time to have breakfast")
}
config.xml
<blog4go minlevel="info"> <filter levels="trace"> <rotatefile path="trace.log" type="time"></rotatefile> </filter> <filter levels="debug,info" colored="true"> <file path="debug.log"></file> </filter> <filter levels="error,critical"> <rotatefile path="error.log" type="size" rotateSize="50000000" rotateLines="8000000"></rotatefile> </filter> </blog4go>
評(píng)論
圖片
表情
