log

package module
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 30, 2025 License: MIT Imports: 8 Imported by: 4

README

l8chat-log

基于 Zap 的高性能日志库,支持日志分级、文件轮转、控制台输出。

📦 安装

go get github.com/L8CHAT/l8chat-log

✨ 功能特性

  • ✅ 基于 Uber Zap 的高性能日志
  • ✅ 支持日志分级(Debug, Info, Warn, Error)
  • ✅ 自动日志文件轮转(基于 lumberjack)
  • ✅ 同时输出到控制台和文件
  • ✅ 支持显示行号
  • ✅ JSON 格式输出

📖 使用示例

基础使用
package main

import (
    "github.com/L8CHAT/l8chat-log"
    "go.uber.org/zap"
    "go.uber.org/zap/zapcore"
)

func main() {
    // 配置日志
    log.Configure(&log.Options{
        LogDir:  "./logs",           // 日志目录
        Level:   zapcore.InfoLevel,  // 日志级别
        LineNum: true,               // 显示行号
    })
    
    // 使用日志
    log.Info("应用启动", zap.String("version", "1.0.0"))
    log.Debug("调试信息", zap.Int("user_id", 123))
    log.Warn("警告信息", zap.String("reason", "配置缺失"))
    log.Error("错误信息", zap.Error(err))
}
日志级别
// Debug - 调试信息
log.Debug("调试信息", zap.String("key", "value"))

// Info - 一般信息
log.Info("用户登录", zap.String("username", "alice"))

// Warn - 警告信息
log.Warn("配置缺失", zap.String("config", "redis.addr"))

// Error - 错误信息
log.Error("数据库连接失败", zap.Error(err))
结构化日志
log.Info("订单创建",
    zap.String("order_id", "ORD123456"),
    zap.Int64("user_id", 1001),
    zap.Float64("amount", 99.99),
    zap.Time("created_at", time.Now()),
)
日志配置
type Options struct {
    LogDir  string          // 日志目录
    Level   zapcore.Level   // 日志级别
    LineNum bool            // 是否显示行号
}

// 日志级别
zapcore.DebugLevel  // -1
zapcore.InfoLevel   //  0
zapcore.WarnLevel   //  1
zapcore.ErrorLevel  //  2
日志文件

日志会自动分为三个文件:

  • info.log - Info 及以上级别的日志
  • error.log - Error 级别的日志
  • warn.log - Warn 级别的日志
日志轮转

日志文件会自动轮转:

  • MaxSize: 500 MB - 单个文件最大大小
  • MaxBackups: 3 - 保留的旧文件数量
  • MaxAge: 28 天 - 保留的最长时间

📝 依赖

  • go.uber.org/zap - 高性能日志库
  • gopkg.in/natefinch/lumberjack.v2 - 日志轮转

📄 许可证

MIT License

🤝 贡献

欢迎提交 Issue 和 Pull Request!

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Configure

func Configure(op *Options)

func Debug

func Debug(msg string, fields ...zap.Field)

Debug Debug

func Error

func Error(msg string, fields ...zap.Field)

Error Error

func Fatal added in v1.1.0

func Fatal(msg string, fields ...zap.Field)

Fatal Fatal

func Focus added in v1.1.0

func Focus(msg string, fields ...zap.Field)

Focus Focus

func Info

func Info(msg string, fields ...zap.Field)

Info Info

func Level added in v1.1.0

func Level() zapcore.Level

Level 获取当前日志级别

func Panic added in v1.1.0

func Panic(msg string, fields ...zap.Field)

Panic Panic

func Sync added in v1.1.0

func Sync() error

Sync 刷新所有日志缓冲

func Trace added in v1.1.0

func Trace(msg string, fields ...zap.Field)

Trace Trace

func Warn

func Warn(msg string, fields ...zap.Field)

Warn Warn

Types

type Log

type Log interface {
	Info(msg string, fields ...zap.Field)
	MessageTrace(msg string, clientMsgNo string, operationName string, fields ...zap.Field)
	Trace(msg string, action string, fields ...zap.Field)
	Debug(msg string, fields ...zap.Field)
	Error(msg string, fields ...zap.Field)
	Warn(msg string, fields ...zap.Field)
	Fatal(msg string, fields ...zap.Field)
	Panic(msg string, fields ...zap.Field)
	Focus(msg string, fields ...zap.Field)
}

Log Log

type Options

type Options struct {
	NodeId   uint64        // 节点ID
	Level    zapcore.Level // 日志级别
	LogDir   string        // 日志目录
	LineNum  bool          // 是否显示行号
	TraceOn  bool          // 是否开启追踪日志
	NoStdout bool          // 是否关闭控制台输出
}

func NewOptions

func NewOptions() *Options

type TLog

type TLog struct {
	// contains filtered or unexported fields
}

TLog 带前缀的日志结构 (兼容旧版本)

func NewTLog

func NewTLog(prefix string) *TLog

NewTLog 创建带前缀的日志实例 (兼容旧版本)

func (*TLog) Debug

func (t *TLog) Debug(msg string, fields ...zap.Field)

Debug Debug

func (*TLog) Error

func (t *TLog) Error(msg string, fields ...zap.Field)

Error Error

func (*TLog) Fatal added in v1.1.0

func (t *TLog) Fatal(msg string, fields ...zap.Field)

Fatal Fatal

func (*TLog) Focus added in v1.1.0

func (t *TLog) Focus(msg string, fields ...zap.Field)

Focus Focus

func (*TLog) Info

func (t *TLog) Info(msg string, fields ...zap.Field)

Info Info

func (*TLog) MessageTrace added in v1.1.0

func (t *TLog) MessageTrace(msg string, no string, action string, fields ...zap.Field)

MessageTrace MessageTrace

func (*TLog) Panic added in v1.1.0

func (t *TLog) Panic(msg string, fields ...zap.Field)

Panic Panic

func (*TLog) Trace added in v1.1.0

func (t *TLog) Trace(msg string, action string, fields ...zap.Field)

Trace Trace

func (*TLog) Warn

func (t *TLog) Warn(msg string, fields ...zap.Field)

Warn Warn

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL