tidb log 源码

  • 2022-09-19
  • 浏览 (301)

tidb log 代码

文件路径:/dumpling/log/log.go

// Copyright 2020 PingCAP, Inc. Licensed under Apache-2.0.

package log

import (
	"github.com/pingcap/errors"
	pclog "github.com/pingcap/log"
	"go.uber.org/zap"
)

var appLogger = Logger{zap.NewNop()}

// Logger wraps the zap logger.
type Logger struct {
	*zap.Logger
}

// Zap returns the global logger.
func Zap() Logger {
	return appLogger
}

// Config serializes log related config in toml/json.
type Config struct {
	// Log level.
	// One of "debug", "info", "warn", "error", "dpanic", "panic", and "fatal".
	Level string `toml:"level" json:"level"`
	// Log filename, leave empty to disable file log.
	File string `toml:"file" json:"file"`
	// Max size for a single file, in MB.
	FileMaxSize int `toml:"max-size" json:"max-size"`
	// Max log keep days, default is never deleting.
	FileMaxDays int `toml:"max-days" json:"max-days"`
	// Maximum number of old log files to retain.
	FileMaxBackups int `toml:"max-backups" json:"max-backups"`
	// Format of the log, one of `text`, `json` or `console`.
	Format string `toml:"format" json:"format"`
}

// InitAppLogger inits the wrapped logger from config.
func InitAppLogger(cfg *Config) (Logger, *pclog.ZapProperties, error) {
	logger, props, err := pclog.InitLogger(&pclog.Config{
		Level: cfg.Level,
		File: pclog.FileLogConfig{
			Filename:   cfg.File,
			MaxSize:    cfg.FileMaxSize,
			MaxDays:    cfg.FileMaxDays,
			MaxBackups: cfg.FileMaxBackups,
		},
		Format: cfg.Format,
	})
	if err != nil {
		return appLogger, props, errors.Trace(err)
	}
	return Logger{logger.WithOptions(zap.AddStacktrace(zap.DPanicLevel))}, props, nil
}

// NewAppLogger returns the wrapped logger from config.
func NewAppLogger(logger *zap.Logger) Logger {
	return Logger{logger}
}

// ShortError contructs a field which only records the error message without the
// verbose text (i.e. excludes the stack trace).
func ShortError(err error) zap.Field {
	if err == nil {
		return zap.Skip()
	}
	return zap.String("error", err.Error())
}

相关信息

tidb 源码目录

相关文章

tidb bind_cache 源码

tidb bind_record 源码

tidb handle 源码

tidb session_handle 源码

tidb stat 源码

tidb backup 源码

tidb cmd 源码

tidb debug 源码

tidb main 源码

tidb restore 源码

0  赞