Skip to content

Latest commit

 

History

History
119 lines (85 loc) · 3.29 KB

zlog.md

File metadata and controls

119 lines (85 loc) · 3.29 KB

日志管理

简介

zlog 是一个灵活而强大的 Go 应用程序日志记录包。它提供了一个简单的接口,用于在不同级别进行日志记录,支持结构化日志记录(键值对)和格式化字符串日志记录。

特性

  • 多个日志级别:Trace、Debug、Info、Warn、Error、Fatal、Panic
  • 支持结构化日志记录和格式化字符串日志记录
  • 可配置的输出(标准输出或文件)
  • 支持日志轮转
  • 开发和生产环境的日志记录模式

安装

要在您的 Go 项目中使用 zlog,请按以下方式导入:

import "path/to/zlog"

基本用法

获取日志记录器实例

要获取日志记录器实例,请使用 GetLogger() 函数:

logger := zlog.GetLogger()

在不同级别记录日志

zlog 支持以下日志级别:

  1. Trace(跟踪)
  2. Debug(调试)
  3. Info(信息)
  4. Warn(警告)
  5. Error(错误)
  6. Fatal(致命)
  7. Panic(恐慌)

您可以使用结构化方法和格式化方法在这些级别记录日志:

结构化日志记录(键值对)

logger.Debug("用户登录", "用户ID", 12345, "用户名", "张三")
logger.Info("服务器启动", "端口", 8080)
logger.Error("数据库连接失败", "错误", err.Error())

格式化字符串日志记录

logger.Debugf("用户 %s (ID: %d) 登录", "张三", 12345)
logger.Infof("服务器在端口 %d 上启动", 8080)
logger.Errorf("数据库连接失败:%v", err)

配置

您可以使用 SetConfig 方法配置日志记录器:

logger.SetConfig(zlog.LogConfig{
    Level:   "debug",
    Pattern: "dev",
    Output:  "stdout",
    LogRotate: zlog.LogRotate{
        Filename:   "app.log",
        MaxSize:    100,
        MaxBackups: 3,
        MaxAge:     7,
        Compress:   true,
    },
})

配置选项:

  • Level:设置最小日志级别("trace"、"debug"、"info"、"warn"、"error"、"fatal"、"panic")
  • Pattern:设置输出模式("dev" 表示人类可读输出,"prod" 表示 JSON 输出)
  • Output:设置输出目标("stdout" 或文件路径)
  • LogRotate:配置日志轮转(仅在记录到文件时适用)

检查日志级别状态

您可以检查特定日志级别是否启用:

if logger.IsDebugEnabled() {
    // 执行耗时的调试日志记录操作
}

最佳实践

  1. 使用适当的日志级别:

    • Trace:用于非常详细的信息,通常仅在调试时有用
    • Debug:用于调试信息
    • Info:用于应用程序进度的一般信息
    • Warn:用于潜在的有害情况
    • Error:用于可能仍允许应用程序继续运行的错误事件
    • Fatal:用于将导致应用程序中止的严重错误事件
    • Panic:用于导致恐慌的意外错误
  2. 尽可能使用结构化日志记录(键值对),因为它使日志更易于查询和分析。

  3. 保持日志消息格式和键名的一致性。

  4. 避免记录敏感信息(如密码、API 密钥)。

  5. 适当使用日志级别,以控制不同环境中的详细程度。

结论

zlog 为您的 Go 应用程序提供了一个灵活而强大的日志记录解决方案。通过遵循本指南,您可以在项目中有效地实施日志记录,从而更容易调试问题和监控应用程序行为。