Skip to content
/ zaplog Public

zaplog 是一个高性能日志库,支持灵活配置和分布式追踪集成。

Notifications You must be signed in to change notification settings

scrawld/zaplog

Repository files navigation

zaplog

zaplog 是一个基于 zap 的高性能日志库,支持灵活的日志配置和分布式追踪功能,适用于高并发应用。

功能特色

  • 高性能:基于 Zap 提供极快的日志写入速度。
  • 分布式追踪:支持日志中注入分布式追踪上下文,便于问题排查和全链路分析。
  • 灵活配置:支持自定义日志级别、日志格式和输出目标。
  • 模块化封装:便于扩展和维护,支持快速接入项目。

快速开始

安装

确保您的项目使用 Go 模块(Go 版本 ≥ 1.16):

go get github.com/scrawld/zaplog

使用示例

基本日志

package main

import (
	"fmt"
	"os"

	"github.com/scrawld/zaplog"
)

func main() {
	err := zaplog.RegisterGlobalLogger(zaplog.Config{
		Level:        "debug",
		Encoding:     "console",
		Directory:    "/tmp/zaplog",
		MaxAge:       7,
		LogInConsole: true,
	})
	if err != nil {
		fmt.Printf("register global logger error: %s\n", err)
		os.Exit(1)
	}
	defer zaplog.Sync()

	zaplog.Info("应用已启动")
}

启用追踪日志

package main

import (
	"fmt"
	"os"

	"github.com/scrawld/zaplog"
)

func main() {
	err := zaplog.RegisterGlobalLogger(zaplog.Config{
		Level:        "debug",
		Encoding:     "console",
		Directory:    "/tmp/zaplog",
		MaxAge:       7,
		LogInConsole: true,
	})
	if err != nil {
		fmt.Printf("register global logger error: %s\n", err)
		os.Exit(1)
	}
	defer zaplog.Sync()

	tracingLogger := zaplog.New()

	tracingLogger.Info("Tracing log example")
	tracingLogger.Error("Tracing error log example")
}

贡献

欢迎提交 Issue 或 Pull Request 来贡献代码。

About

zaplog 是一个高性能日志库,支持灵活配置和分布式追踪集成。

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages