2023-01-20 14:47:21 +08:00
|
|
|
|
# gologger
|
|
|
|
|
|
2025-06-06 19:38:01 +08:00
|
|
|
|
GoLogger 是一个简单但功能强大的 Go 语言日志库,提供灵活的日志记录功能。它支持多种日志输出方式(控制台、文件等),并允许自定义日志格式。
|
|
|
|
|
|
|
|
|
|
## 特性
|
|
|
|
|
- 支持多种日志级别:ERROR, WARN, INFO, DEBUG, TRACE
|
|
|
|
|
- 支持多种输出方式:控制台、文件(支持滚动策略)
|
|
|
|
|
- 可定制日志格式
|
|
|
|
|
- 支持按类别记录日志
|
|
|
|
|
|
|
|
|
|
## 安装
|
|
|
|
|
```bash
|
|
|
|
|
go get github.com/yourusername/gologger
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 快速开始
|
|
|
|
|
```go
|
|
|
|
|
package main
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"github.com/yourusername/gologger"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func main() {
|
|
|
|
|
// 获取默认logger
|
|
|
|
|
logger := gologger.GetLogger("main")
|
|
|
|
|
|
|
|
|
|
// 设置全局日志级别
|
|
|
|
|
gologger.Configure(gologger.LoggersConfig{
|
|
|
|
|
Level: "info",
|
|
|
|
|
Appenders: []gologger.LogAppenderConfig{
|
|
|
|
|
{
|
|
|
|
|
Type: "console",
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
Type: "file",
|
|
|
|
|
Options: map[string]interface{}{
|
|
|
|
|
"filePath": "app.log",
|
|
|
|
|
"EnableRolling": true,
|
|
|
|
|
"MaxSize": 1024 * 1024 * 10, // 10MB
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
// 记录日志
|
|
|
|
|
logger.Info("Application started")
|
|
|
|
|
logger.Error("An error occurred")
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 配置说明
|
|
|
|
|
|
|
|
|
|
### 日志级别
|
|
|
|
|
支持的级别包括:off, error, warn, info, debug, trace
|
|
|
|
|
|
|
|
|
|
### 输出方式(Appenders)
|
|
|
|
|
|
|
|
|
|
1. **ConsoleAppender** - 控制台输出
|
|
|
|
|
配置示例:
|
|
|
|
|
```go
|
|
|
|
|
{
|
|
|
|
|
Type: "console",
|
|
|
|
|
}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
2. **FileAppender** - 文件输出,支持滚动策略
|
|
|
|
|
配置参数:
|
|
|
|
|
- filePath: 日志文件路径
|
|
|
|
|
- EnableRolling: 是否启用滚动(默认true)
|
|
|
|
|
- MaxSize: 单个文件最大大小(字节,默认10MB)
|
|
|
|
|
- MaxAge: 文件最大保存时间(秒,默认86400秒=24小时)
|
|
|
|
|
|
|
|
|
|
### 格式化器
|
|
|
|
|
可以通过SelectFormatter选择不同的日志格式:
|
|
|
|
|
- simple: 简单格式 `[timestamp] level : category - message`
|
|
|
|
|
- json: JSON 格式输出
|