BLog4go Go 高效日志库开源项目

我要开发同款
匿名用户2016年07月18日
14阅读
所属分类Google Go、程序开发、日志工具(Logging)
授权协议MIT

作品详情

BLog4go是高性能日志库。创新地使用“边解析边输出”方法进行日志输出,同时支持回调函数、日志淘汰和配置文件。可以解决高并发,调用日志函数频繁的情境下,日志库造成的性能问题。

快速启动:

package mainimport (    log "github.com/YoungPioneers/blog4go"    "fmt"    "os")// optionally set user defined hook for loggingtype 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>
查看全文
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论