blog4go Go 高性能日志库 blog4go

agolangf • 2276 次点击    
这是一个分享于 的项目,其中的信息可能已经有所发展或是发生改变。
BLog4go 是高性能日志库。创新地使用“边解析边输出”方法进行日志输出,同时支持回调函数、日志淘汰和配置文件。可以解决高并发,调用日志函数频繁的情境下,日志库造成的性能问题。 特性: * _Partially write_ to the [bufio.Writer](https://golang.org/pkg/bufio/#Writer) as soon as posible while formatting message to improve performance * 支持将不同日志级别数据写到不同文件 * 支持使用 XML 格式的配置文件 * 可配置的日志循环策略 * 每次日志动作都可异步调用用户自定义的钩子 * 可调整日志格式 * 无需重启更改日志行为 * 日志启动时使用环境变量的配置 * 后台记录 * 可根据配置文件制定文件写操作 * 不同的输出渠道 * 控制台 * 文件 * Socket 套接字 快速开始: <pre class="brush:cpp ;toolbar: true; auto-links: false;">package main import (     log &#34;github.com/YoungPioneers/blog4go&#34;     &#34;fmt&#34;     &#34;os&#34; ) // 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(&#34;config.xml&#34;)     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)     // optionally set output colored     log.SetColored(true)     log.Debugf(&#34;Good morning, %s&#34;, &#34;eddie&#34;)     log.Warn(&#34;It&#39;s time to have breakfast&#34;) }</pre> config.xml <pre class="brush:xml;toolbar: true; auto-links: false;">&lt;blog4go minlevel=&#34;info&#34;&gt;     &lt;filter levels=&#34;trace&#34;&gt;         &lt;rotatefile path=&#34;trace.log&#34; type=&#34;time&#34;&gt;&lt;/rotatefile&gt;     &lt;/filter&gt;     &lt;filter levels=&#34;debug,info&#34; colored=&#34;true&#34;&gt;         &lt;file path=&#34;debug.log&#34;&gt;&lt;/file&gt;     &lt;/filter&gt;     &lt;filter levels=&#34;error,critical&#34;&gt;         &lt;rotatefile path=&#34;error.log&#34; type=&#34;size&#34; rotateSize=&#34;50000000&#34; rotateLines=&#34;8000000&#34;&gt;&lt;/rotatefile&gt;     &lt;/filter&gt; &lt;/blog4go&gt;</pre>
授权协议:
BSD
开发语言:
Google Go 查看源码»
操作系统:
跨平台
2276 次点击  ∙  1 赞  
加入收藏 微博
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传