log

package module
v1.0.5 Latest Latest
Warning

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

Go to latest
Published: Sep 11, 2020 License: BSD-2-Clause Imports: 17 Imported by: 5

README

go-log:日志库

go-log 是通用日志库,用来输出各种级别的日志。

使用方法

TBD

Documentation

Index

Constants

View Source
const (
	// DefaultLogPath 日志文件的默认路径。
	DefaultLogPath = "./log/all.log"

	// DefaultLogLevel 是日志的默认级别。
	DefaultLogLevel = "info"

	// DefaultErrorLogPath 错误日志文件的默认路径。
	DefaultErrorLogPath = "./log/error.log"

	// DefaultErrorLogLevel 是错误日志的默认级别。
	DefaultErrorLogLevel = "warn"

	// DefaultBufferedLines 是内存中缓存的日志行数。
	DefaultBufferedLines = 1 << 18
)

Variables

This section is empty.

Functions

func Debugf

func Debugf(ctx context.Context, fmt string, args ...interface{})

Debugf 输出调试日志,默认情况日志级别下不会输出,通过修改配置中的 LogLevel,将级别设置为 LogDebug 来显示这个级别的日志。

func Errorf

func Errorf(ctx context.Context, fmt string, args ...interface{})

Errorf 输出错误日志,如果程序发生了严重错误,应该用这个级别。

func Fatalf

func Fatalf(ctx context.Context, fmt string, args ...interface{})

Fatalf 直接终止程序,在业务中几乎用不到这种日志,一般只在程序启动的时候用作快速返回。

func Flush

func Flush() error

Flush 将所有缓冲区的内容强制写入磁盘。

func Infof

func Infof(ctx context.Context, fmt string, args ...interface{})

Infof 输出普通日志,通常的业务日志多数都为这种格式。

func Init

func Init(config *Config)

Init 初始化日志配置。

func Printf

func Printf(ctx context.Context, fmt string, args ...interface{})

Printf 可以无视日志级别,始终对外输出日志,一般只用于框架,业务不使用。

func Rotate

func Rotate() error

Rotate 重新打开所有的日志文件,方便做日志切割。

func Tracef

func Tracef(ctx context.Context, fmt string, args ...interface{})

Tracef 输出跟踪日志,一般框架使用,用于输出一些可以在日志采集中使用的结构化日志。

func Warnf

func Warnf(ctx context.Context, fmt string, args ...interface{})

Warnf 输出告警日志,如果程序走到了一些不预期的分支,需要人工关注,应该用这个级别。

func WithMoreInfo

func WithMoreInfo(ctx context.Context, info ...Info) context.Context

WithMoreInfo 在 ctx 里面保存更多的信息,可以自动在输出 log 时候将这些信息以 k=v 形式输出。

func WithTag

func WithTag(ctx context.Context, tag string) context.Context

WithTag 在 ctx 里面存一个日志 tag 信息,用于日志输出。

Types

type AsyncWriter

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

AsyncWriter 包装了一个 writer,让所有写入变成异步写。

func NewAsyncWriter

func NewAsyncWriter(writer io.WriteCloser, size int) *AsyncWriter

NewAsyncWriter 创建一个异步 writer,使用 size 作为缓冲区的条数。

func (*AsyncWriter) Close

func (w *AsyncWriter) Close() error

Close 关闭 w,释放内部的 writer,并且关闭刷数据的 goroutine。 这个函数会在所有数据写入之后再返回,缓冲区比较满的时候会花较长时间返回。

func (*AsyncWriter) Flush

func (w *AsyncWriter) Flush() error

Flush 用来刷新当前缓存的数据。

func (*AsyncWriter) Write

func (w *AsyncWriter) Write(data []byte) (written int, err error)

Write 写入 data 到异步队列里面,任何情况下这个函数不会阻塞。 如果缓冲区满了或者 w 已经被关闭,返回错误。

type Config

type Config struct {
	LogPath       string `config:"log_path"`        // LogPath 是日志文件名,默认写到 DefaultLogPath 里面。
	LogLevel      string `config:"log_level"`       // LogLevel 是日志级别,默认是 DefaultLogLevel。
	ErrorLogPath  string `config:"error_log_path"`  // ErrorLogPath 是错误日志文件名,默认写到 DefaultErrorLogPath 里面。
	ErrorLogLevel string `config:"error_log_level"` // ErrorLogLevel 是错误日志级别,当错误级别不大于这个级别时写入错误日志,默认是 DefaultErrorLogLevel。

	PackagePrefix string `config:"package_prefix"` // PackagePrefix 设置最常用的 package 前缀,输出调用栈的时候会用 "." 代替这一长串字符,让日志看起来更简洁。
	BufferedLines int    `config:"buffered_lines"` // BufferedLines 设置最多在内存中缓存的日志行数,默认是 DefaultBufferedLines。
}

Config 代表日志配置。

type Info

type Info struct {
	Key   string
	Value interface{}
}

Info 代表一个 k=v 键值对。

type Level

type Level int

Level 代表日志级别,值越小日志级别越高。

const (
	LogFatal Level = 1 << iota
	LogError
	LogWarn
	LogTrace
	LogInfo
	LogDebug
)

各种日志级别。

type Logger

type Logger interface {
	io.Closer

	// Debugf 输出调试日志,默认情况日志级别下不会输出,通过修改配置中的 LogLevel,将级别设置为 LogDebug 来显示这个级别的日志。
	Debugf(ctx context.Context, fmt string, args ...interface{})

	// Infof 输出普通日志,通常的业务日志多数都为这种格式。
	Infof(ctx context.Context, fmt string, args ...interface{})

	// Tracef 输出跟踪日志,一般框架使用,用于输出一些可以在日志采集中使用的结构化日志。
	Tracef(ctx context.Context, fmt string, args ...interface{})

	// Warnf 输出告警日志,如果程序走到了一些不预期的分支,需要人工关注,应该用这个级别。
	Warnf(ctx context.Context, fmt string, args ...interface{})

	// Errorf 输出错误日志,如果程序发生了严重错误,应该用这个级别。
	Errorf(ctx context.Context, fmt string, args ...interface{})

	// Fatalf 直接终止程序,在业务中几乎用不到这种日志,一般只在程序启动的时候用作快速返回。
	Fatalf(ctx context.Context, fmt string, args ...interface{})

	// Printf 可以无视日志级别,始终对外输出日志,一般只用于框架,业务不使用。
	Printf(ctx context.Context, fmt string, args ...interface{})
}

Logger 代表一个标准日志接口。

Jump to

Keyboard shortcuts

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