cihub/seelog
GitHub: cihub/seelog
Seelog 是一个 Go 原生日志库,提供灵活的异步分发、过滤、格式化及 XML 动态配置来解决日志管理需求。
Stars: 1636 | Forks: 238
# Seelog
Seelog 是一个强大且易于学习的日志框架,提供了灵活分发、过滤和格式化日志消息的功能。
它使用 [Go](http://golang.org/) 编程语言原生编写。
[](https://drone.io/github.com/cihub/seelog/latest)
## 功能
* 通过 XML 配置,无需重新编译即可更改 logger 参数
* 无需重启应用即可动态更改配置
* 可以为不同的项目文件和函数设置不同的日志配置
* 可调整的消息格式化
* 同时将日志输出到多个流
* 选择 logger 优先级策略,以最大程度减少性能影响
* 不同的输出 writer
* Console writer
* File writer
* Buffered writer (Chunk writer)
* Rolling log writer (带轮转的日志记录)
* SMTP writer
* 其他... (参见 [Wiki](https://github.com/cihub/seelog/wiki))
* 日志消息包装器 (JSON、XML 等)
* 提供全局变量和函数,便于在独立应用中使用
* 提供灵活的函数,便于在库中使用
## 快速开始
```
package main
import log "github.com/cihub/seelog"
func main() {
defer log.Flush()
log.Info("Hello from Seelog!")
}
```
## 安装
如果您尚未安装 Go 开发环境,请访问
[入门指南](http://golang.org/doc/install.html) 文档并按照说明进行操作。准备好后,执行以下命令:
```
go get -u github.com/cihub/seelog
```
*重要提示*:如果您使用的不是最新发布版本的 Go,请查看此 [wiki 页面](https://github.com/cihub/seelog/wiki/Notes-on-'go-get')
## 文档
Seelog 拥有 GitHub wiki 页面,其中包含详细的操作指南和参考:https://github.com/cihub/seelog/wiki
## 示例
可以在此处找到 Seelog 的示例:[seelog-examples](https://github.com/cihub/seelog-examples)
## 问题
随时欢迎提交能让 Seelog 变得更好的 issue:https://github.com/cihub/seelog/issues
## 更新日志
* **v2.6** :使用代码进行配置以及自定义 formatter
* 除了 XML 之外,还支持使用代码进行配置(现在所有内部的 receiver/dispatcher/logger 类型都已导出)。
* 自定义 formatter。查看 [wiki](https://github.com/cihub/seelog/wiki/Custom-formatters)
* Bug 修复和内部改进。
* **v2.5** :与其他系统的交互。第 2 部分:自定义 receiver
* 完成了自定义 receiver 功能。查看 [wiki](https://github.com/cihub/seelog/wiki/custom-receivers)
* 添加了 'LoggerFromCustomReceiver'
* 添加了 'LoggerFromWriterWithMinLevelAndFormat'
* 添加了 'LoggerFromCustomReceiver'
* 添加了 'LoggerFromParamConfigAs...'
* **v2.4** :与其他系统的交互。第 1 部分:包装 seelog
* 添加了可配置的 caller stack skip 逻辑
* 在 'LoggerInterface' 中添加了 'SetAdditionalStackDepth'
* **v2.3** :重新思考 'rolling' receiver
* 重新实现了 'rolling' receiver
* 为 type='date' 的 'rolling' receiver 添加了 'Max rolls' 功能
* 修复了 'rolling' receiver 的问题:Windows 上的重命名问题
* **v2.2** :go1.0 兼容点 [go1.0 tag]
* 修复了内部 bug
* 添加了 'ANSI n [;k]' 格式标识符:%EscN
* 使当前版本兼容 go1
* **v2.1** :一些新功能
* Rolling receiver 归档选项。
* 添加了格式标识符:%Line
* SMTP:添加了 PEM 文件目录的路径
* 添加了格式标识符:%FuncShort
* Warn、Error 和 Critical 方法现在会返回一个 error
* **v2.0** :第二个主要版本。破坏性更新。
* 支持移除符号的二进制文件
* 添加了日志策略:adaptive
* Critical 消息现在会强制执行 Flush()
* 添加了预定义格式:xml-debug, xml-debug-short, xml, xml-short, json-debug, json-debug-short, json, json-short, debug, debug-short, fast
* 添加了 receiver:conn (网络连接 writer)
* 破坏性更新:添加了 Tracef, Debugf, Infof 等,以满足 print/printf 原则
* Bug 修复
* **v1.0** :初始版本。功能:
* XML 配置
* 无需重启应用即可动态更改配置
* 约束和异常
* 格式化
* 日志策略:sync, async loop, async timer
* Receiver:buffered, console, file, rolling, smtp
标签:EVTX分析, Go, Ruby工具, 开发组件, 异步分发, 日志分级, 日志审计, 日志库, 日志轮转