{"id":28098605,"url":"https://github.com/hildam/logs","last_synced_at":"2025-08-02T10:34:41.542Z","repository":{"id":291783881,"uuid":"974249388","full_name":"HildaM/logs","owner":"HildaM","description":"A simple, flexible Go logging library supporting both stdout and file output, with size/time-based rotation and compression features. Uses the Option pattern for flexible configuration, designed for small projects. | 一个简单、灵活的Go日志库，支持标准输出和文件输出，具有按大小/时间轮转、日志压缩等功能。采用Option模式，配置灵活，专为小型项目设计","archived":false,"fork":false,"pushed_at":"2025-05-11T08:13:28.000Z","size":26,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-13T18:01:44.369Z","etag":null,"topics":["golang","log","logs","slog","zaplog","zerolog"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/HildaM.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-04-28T13:36:43.000Z","updated_at":"2025-05-11T08:13:11.000Z","dependencies_parsed_at":"2025-05-06T15:04:34.992Z","dependency_job_id":null,"html_url":"https://github.com/HildaM/logs","commit_stats":null,"previous_names":["hildam/logs"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/HildaM/logs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HildaM%2Flogs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HildaM%2Flogs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HildaM%2Flogs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HildaM%2Flogs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/HildaM","download_url":"https://codeload.github.com/HildaM/logs/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/HildaM%2Flogs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":265820261,"owners_count":23833563,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["golang","log","logs","slog","zaplog","zerolog"],"created_at":"2025-05-13T17:58:23.742Z","updated_at":"2025-07-18T19:35:53.860Z","avatar_url":"https://github.com/HildaM.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Logs\n\n一个简单、灵活的Go日志库，专为小型项目设计。\n\n## 特性\n\n- 支持多种输出方式：标准输出和文件输出\n- 支持日志级别：Debug、Info、Warn、Error\n- 文件日志支持按大小轮转\n- 文件日志支持按时间轮转（支持秒、分、时、天、周）\n- 支持日志文件压缩\n- 支持自定义时间格式\n- 使用Option模式灵活配置\n\n## 安装\n\n```bash\ngo get github.com/hildam/logs\n```\n\n## 使用示例\n\n### 标准输出日志\n\n```go\nimport \"github.com/hildam/logs/slog\"\n\n// 创建标准输出日志\nlogger, err := slog.NewStdoutLogger(\n    slog.WithLevel(\"debug\"),                // 设置日志级别\n    slog.WithTimeFormat(time.RFC3339),      // 自定义时间格式\n)\nif err != nil {\n    panic(err)\n}\n\n// 使用日志\nlogger.Info(\"这是一条信息日志: %s\", \"信息内容\")\nlogger.Debug(\"这是一条调试日志: %s\", \"调试内容\")\nlogger.Warn(\"这是一条警告日志: %s\", \"警告内容\") \nlogger.Error(\"这是一条错误日志: %s\", \"错误内容\")\n\n// 也可以使用io.Writer接口\nlogger.Write([]byte(\"直接写入内容\"))\n```\n\n### 文件输出日志\n\n```go\nimport \"github.com/hildam/logs/slog\"\n\n// 创建文件输出日志（按大小轮转）\nlogger, err := slog.NewFileLogger(\"./app.log\",\n    slog.WithLevel(\"info\"),            // 设置日志级别\n    slog.WithMaxSize(100*1024*1024),   // 设置单个日志文件最大大小（100MB）\n    slog.WithMaxBackups(10),           // 设置最大保留日志文件数量\n    slog.WithCompress(),               // 启用日志文件压缩\n    slog.WithBufferSize(8*1024),       // 设置缓冲区大小\n)\nif err != nil {\n    panic(err)\n}\n\n// 使用日志\nlogger.Info(\"文件日志示例: %s\", \"信息内容\")\n\n// 创建文件输出日志（按时间轮转）\nloggerTime, err := slog.NewFileLogger(\"./time_rotate.log\",\n    slog.WithRotateInterval(\"1d\"),     // 每天轮转\n    slog.WithMaxBackups(30),           // 保留30个备份\n)\nif err != nil {\n    panic(err)\n}\n\nloggerTime.Info(\"时间轮转日志示例\")\n```\n\n## 配置选项\n\n| 选项 | 描述 | 默认值 |\n|------|------|--------|\n| WithLevel | 设置日志级别 (debug, info, warn, error) | info |\n| WithMaxSize | 设置日志文件最大大小（字节） | 100MB |\n| WithRotateInterval | 设置日志轮转间隔 (1s, 5m, 2h, 1d, 2w) | 1w |\n| WithMaxBackups | 设置最大备份文件数 | 12 |\n| WithBufferSize | 设置缓冲区大小（字节，0表示立即写入） | 8KB |\n| WithCompress | 启用日志压缩 | 默认启用 |\n| WithTimeFormat | 设置时间格式 | time.DateTime |\n| WithFilePerm | 设置日志文件权限 | 0700 |\n| WithPrintAfterInitialized | 启用初始化后打印日志器配置信息 | 默认禁用 |\n\n## 未来规划\n\n- 支持更多日志库适配\n- 添加更多日志格式\n- 支持更多输出目标（如网络、数据库等）\n\n## 许可证\n\nMIT ","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhildam%2Flogs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhildam%2Flogs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhildam%2Flogs/lists"}