blog4go

Go 高性能日志库
授权协议 BSD
开发语言 Google Go
所属分类 程序开发、 日志工具(Logging)
软件类型 开源软件
地区 国产
投 递 者 段干宾白
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

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

特性:

  • Partially write to the bufio.Writer as soon as posible while formatting message to improve performance

  • 支持将不同日志级别数据写到不同文件

  • 支持使用 XML 格式的配置文件

  • 可配置的日志循环策略

  • 每次日志动作都可异步调用用户自定义的钩子

  • 可调整日志格式

  • 无需重启更改日志行为

  • 日志启动时使用环境变量的配置

  • 后台记录

  • 可根据配置文件制定文件写操作

  • 不同的输出渠道

    • 控制台

    • 文件

    • Socket 套接字

快速开始:

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)

    // 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>
  • package blog4go import ( "bufio" "errors" "fmt" "io" "os" "strings" "sync" ) const ( // EOL end of a line EOL = '\n' // ESCAPE escape character ESCAPE = '\\' // PLACEHOLDER placeholder PLACEHOLDER = '

  • https://blog.csdn.net/Jeanphorn/article/details/78576759 1. 描述 在go语言中,自身已经集成了一定log模块,开发者可以使用go语言自身的log包(import “log”)。也有不少对自身log的开源封装。对于一些简单的开发,自身的log模块就已经足够应付。但是对一些大型,复杂的开发,log需要分门别类的输出,或者通过网络进行输出,自身

  • 视频来源:B站《golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]》 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:Go语言自学系列 | 汇总_COCOgsta的博客-CSDN博客 函数可以有0或多个返回值,返回值需要指定数据类型,返回值通过return关键字来指定。 return可以有参数,也可以没有参数,这些

  • 视频来源:B站《golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]》 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:Go语言自学系列 | 汇总_COCOgsta的博客-CSDN博客 go语言函数可以有0或多个参数,参数需要指定数据类型。 声明函数时的参数列表叫做形参,调用时传递的参数叫做实参。 go语言是通过传值

  • 视频来源:B站《golang入门到项目实战 [2021最新Go语言教程,没有废话,纯干货!持续更新中...]》 一边学习一边整理老师的课程内容及试验笔记,并与大家分享,侵权即删,谢谢支持! 附上汇总贴:Go语言自学系列 | 汇总_COCOgsta的博客-CSDN博客_自学go语言 bytes包提供了对字节切片进行读写操作的一系列函数,字节切片处理的函数比较多分为基本处理函数、比较函数、后缀检查函数

 相关资料
  • 1) 有没有办法记录在Cassandra中执行的查询 2)为了提高性能,我了解cqlsh中的TracingON是一个很好的功能,用于跟踪我们在cqlsh中执行的单个查询。但是是否有一种方法来分析Cassandra查询,它给出了执行时间、查询数据大小等。,

  • 问题内容: 嗨,我有一个selenium脚本运行,应该给我性能日志。我有一个方法“ printLog”,应该(显然)打印性能日志。我的代码将能够准确地深入解释我要做什么。 当我运行代码时,Chrome打开,我在控制台中得到以下堆栈跟踪: 我可以根据要求提供更多详细信息,但基本上我只是想弄清楚为什么该方法返回此错误。谢谢。 问题答案: 从https://github.com/seleniumhq/s

  • 问题内容: 我正在尝试遵循Web性能测试与WebDriver谷歌测试自动化大会演讲和ChromeDriver “性能日志”文档页面中提出的想法,以获取要提交给webtest稍后进行性能分析的跟踪数据。 如何使用 pythonselenium绑定 检索性能日志? 我试图打印出驱动程序实例中可用的 但只有 而且我没有看到相关的命令行开关。 问题答案: 默认情况下, 性能日志是 禁用的 。 要启用它,请

  • 本文向大家介绍php高性能日志系统 seaslog 的安装与使用方法分析,包括了php高性能日志系统 seaslog 的安装与使用方法分析的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了php高性能日志系统 seaslog 的安装与使用方法。分享给大家供大家参考,具体如下: 一、什么是日志系统     一般用于记录系统运行时的信息,一般分为三类:系统日志,应用程序日志,安全日志。日志功能不

  • 我正在用docx4j做一些测试。我需要做的是将复杂的Word文档(2-3页的文本、表格、项目符号列表、图像)转换成XHTML。

  • 我在我的应用程序中创建了第二个DataSource。 我用HikariDataSource创建了它,因为它断开了连接,所以出现了问题。 现在它没有断开,但是很慢 我的配置如下: 爪哇: 有人能告诉我如何提高绩效吗。 它们是表的小查询,分页约为25条记录,需要4秒钟。 我观察到,查询一个select的200条记录需要46秒,而查询只需要2秒。 以前,它们是千分之一秒。 非常感谢。

  • 前言 mars 是微信官方的终端基础组件,是一个使用 C++ 编写的业务性无关,平台性无关的基础组件。目前已接入微信 Android、iOS、Mac、Windows、WP 等客户端。现正在筹备开源中,它主要包括以下几个部分: comm:可以独立使用的公共库,包括 socket、线程、消息队列等 xlog:可以独立使用的日志模块 sdt:可以独立使用的网络诊断模块 stn:可以独立使用的信令分发网路

  • 1. Nginx日志功能介绍 通常,在生产环境中使用 Nginx 进行反向代理和负载均衡或者各种其他处理时,良好的日志记录是非常关键的一环。通过精心配置的 Nginx 日志,我们可以获取用户的真实 ip、浏览器信息,请求处理时间,请求URL等,这样方便我们排查和回溯错误。具体要记录哪些信息,可以通过 Nginx 中的 log_format 指令定义,由它定义日志的格式。而对于使用哪种日志格式和设置