cihub/seelog

GitHub: cihub/seelog

Seelog 是一个 Go 原生日志库,提供灵活的异步分发、过滤、格式化及 XML 动态配置来解决日志管理需求。

Stars: 1636 | Forks: 238

# Seelog Seelog 是一个强大且易于学习的日志框架,提供了灵活分发、过滤和格式化日志消息的功能。 它使用 [Go](http://golang.org/) 编程语言原生编写。 [![Build Status](https://drone.io/github.com/cihub/seelog/status.png)](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工具, 开发组件, 异步分发, 日志分级, 日志审计, 日志库, 日志轮转