Documentation ¶
Index ¶
- Constants
- Variables
- func BgLogger() *zap.Logger
- func ErrVerboseLogger() *zap.Logger
- func Event(ctx context.Context, event string)
- func Eventf(ctx context.Context, format string, args ...any)
- func Hex(msg proto.Message) fmt.Stringer
- func InitLogger(cfg *LogConfig, opts ...zap.Option) error
- func LogEnvVariables()
- func Logger(ctx context.Context) *zap.Logger
- func LoggerWithTraceInfo(logger *zap.Logger, info *model.TraceInfo) *zap.Logger
- func ReplaceLogger(cfg *LogConfig, opts ...zap.Option) error
- func SampleLoggerFactory(tick time.Duration, first int, fields ...zap.Field) func() *zap.Logger
- func SetLevel(level string) error
- func SetTag(ctx context.Context, key string, value any)
- func WithCategory(ctx context.Context, category string) context.Context
- func WithConnID(ctx context.Context, connID uint64) context.Context
- func WithFields(ctx context.Context, fields ...zap.Field) context.Context
- func WithKeyValue(ctx context.Context, key, value string) context.Context
- func WithSessionAlias(ctx context.Context, alias string) context.Context
- func WithTraceFields(ctx context.Context, info *model.TraceInfo) context.Context
- func WithTraceLogger(ctx context.Context, info *model.TraceInfo) context.Context
- type FileLogConfig
- type LogConfig
Constants ¶
const ( // DefaultLogMaxSize is the default size of log files. DefaultLogMaxSize = 300 // MB // DefaultLogFormat is the default format of the log. DefaultLogFormat = "text" // DefaultSlowThreshold is the default slow log threshold in millisecond. DefaultSlowThreshold = 300 // DefaultSlowTxnThreshold is the default slow txn log threshold in ms. DefaultSlowTxnThreshold = 0 // DefaultQueryLogMaxLen is the default max length of the query in the log. DefaultQueryLogMaxLen = 4096 // DefaultRecordPlanInSlowLog is the default value for whether enable log query plan in the slow log. DefaultRecordPlanInSlowLog = 1 // DefaultTiDBEnableSlowLog enables TiDB to log slow queries. DefaultTiDBEnableSlowLog = true )
const ( // LogFieldCategory is the field name for log category LogFieldCategory = "category" // LogFieldConn is the field name for connection id in log LogFieldConn = "conn" // LogFieldSessionAlias is the field name for session_alias in log LogFieldSessionAlias = "session_alias" )
const ( // SlowLogTimeFormat is the time format for slow log. SlowLogTimeFormat = time.RFC3339Nano // OldSlowLogTimeFormat is the first version of the the time format for slow log, This is use for compatibility. OldSlowLogTimeFormat = "2006-01-02-15:04:05.999999999 -0700" // GRPCDebugEnvName is the environment variable name for GRPC_DEBUG. GRPCDebugEnvName = "GRPC_DEBUG" )
const TraceEventKey = "event"
TraceEventKey presents the TraceEventKey in span log.
Variables ¶
var CtxLogKey = ctxLogKeyType{}
CtxLogKey indicates the context key for logger public for test usage.
var EmptyFileLogConfig = FileLogConfig{}
EmptyFileLogConfig is an empty FileLogConfig.
var GeneralLogger = log.L()
GeneralLogger is used to log general log, InitLogger will modify it according to config file.
var SlowQueryLogger = log.L()
SlowQueryLogger is used to log slow query, InitLogger will modify it according to config file.
Functions ¶
func BgLogger ¶
BgLogger is alias of `logutil.BgLogger()`. It's initialized in tidb-server's main function. Don't use it in `init` or equivalent functions otherwise it will print to stdout.
func ErrVerboseLogger ¶
ErrVerboseLogger returns a logger that always output error verbose regardless of the log config. error verbose is disabled on default, but without stack it's harder to investigate some issues, such as in DXF the error mostly happen in business logic, the error stack is very deep, we want to log the stack to help us investigate. Note: if stack is not that needed to investigate, use normal logger instead.
func Hex ¶
Hex defines a fmt.Stringer for proto.Message. We can't define the String() method on proto.Message, but we can wrap it.
func InitLogger ¶
InitLogger initializes a logger with cfg.
func Logger ¶
Logger gets a contextual logger from current context. contextual logger will output common fields from context.
func LoggerWithTraceInfo ¶
LoggerWithTraceInfo attaches fields from trace info to logger
func ReplaceLogger ¶
ReplaceLogger replace global logger instance with given log config.
func SampleLoggerFactory ¶
SampleLoggerFactory returns a factory function that creates a sample logger. the logger is used to sample the log to avoid too many logs, it will only log the first 'first' log entries with the same level and message in 'tick' time. NOTE: Because we need to record the log count with the same level and message in this specific logger, the returned factory function will only create one logger. this logger support at most 4096 types of logs with the same level and message.
func WithCategory ¶
WithCategory attaches category to context.
func WithConnID ¶
WithConnID attaches connId to context.
func WithFields ¶
WithFields attaches key/value to context.
func WithKeyValue ¶
WithKeyValue attaches key/value to context.
func WithSessionAlias ¶
WithSessionAlias attaches session_alias to context
func WithTraceFields ¶
WithTraceFields attaches trace fields to context
Types ¶
type FileLogConfig ¶
type FileLogConfig struct {
log.FileLogConfig
}
FileLogConfig serializes file log related config in toml/json.
func NewFileLogConfig ¶
func NewFileLogConfig(maxSize uint) FileLogConfig
NewFileLogConfig creates a FileLogConfig.
type LogConfig ¶
type LogConfig struct { log.Config // SlowQueryFile filename, default to File log config on empty. SlowQueryFile string // GeneralLogFile filenanme, default to File log config on empty. GeneralLogFile string }
LogConfig serializes log related config in toml/json.
func NewLogConfig ¶
func NewLogConfig(level, format, slowQueryFile string, generalLogFile string, fileCfg FileLogConfig, disableTimestamp bool, opts ...func(*log.Config)) *LogConfig
NewLogConfig creates a LogConfig.