package
1.9.0
Repository: https://github.com/go-eagle/eagle.git
Documentation: pkg.go.dev

# README

说明

本logger主要是对zap库的封装,便于使用。当然也可以根据接口使用其他日志库,比如 logrus

日志功能

  • 将日志信息记录到日志文件里
  • 日志切割-能够根据日志文件大小或时间间隔进行切割
  • 支持不同的日志级别(eg:info,debug,warn,error,fatal)
  • 支持按日志级别分类输出到不同日志文件
  • 能够打印基本信息,如调用文件/函数名和行号,日志时间,IP等

使用方法

log.Info("user_id is 1")
log.Warn("user is not exist")
log.Error("params error")

log.Warnf("params is empty")
...

原则

日志尽量不要在 model, repository, service中打印输出,最好使用 errors.Wrapf 将错误和消息返回到上层,然后在 handler 层中处理错误, 也就是通过日志打印出来。

这样做的好处是:避免相同日志在多个地方打印,让排查问题更简单。

Reference

# Functions

Debug logger.
Debugf logger.
Error logger.
Errorf logger.
Fatal logger.
Fatalf logger.
GetLogFile get log file absolute path.
GetLogger return a log.
GetZapLogger return raw zap logger.
Info logger.
Infof logger.
Init init log.
Warn logger.
Warnf logger.
WithContext is a logger that can log msg and log span for trace.
WithFields logger output more field, eg: contextLogger := log.WithFields(log.Fields{"key1": "value1"}) contextLogger.Info("print multi field") or more sample to use: log.WithFields(log.Fields{"key1": "value1"}).Info("this is a test log") log.WithFields(log.Fields{"key1": "value1"}).Infof("this is a test log, user_id: %d", userID).
WithFilename set log filename.
WithLogDir set log dir.

# Constants

RotateTimeDaily 按天切割.
RotateTimeHourly 按小时切割.
WriterConsole console输出.
WriterFile 文件输出.

# Structs

Config log config.

# Interfaces

Logger is a contract for the logger.

# Type aliases

Fields Type to pass when we want to call WithFields for structured logging.
No description provided by the author