Documentation ¶
Index ¶
- Variables
- func DPanic(msg string, fields ...Field)
- func Debug(msg string, fields ...Field)
- func Error(msg string, fields ...Field)
- func Fatal(msg string, fields ...Field)
- func Info(msg string, fields ...Field)
- func Panic(msg string, fields ...Field)
- func SetLogger(log Logger)
- func Warn(msg string, fields ...Field)
- type Core
- type Encoder
- type Field
- type Level
- type LevelEnablerFunc
- func DPanicLevelPartition() LevelEnablerFunc
- func DebugLevelPartition() LevelEnablerFunc
- func ErrorLevelPartition() LevelEnablerFunc
- func FatalLevelPartition() LevelEnablerFunc
- func InfoLevelPartition() LevelEnablerFunc
- func MultiLevelPartition(levels ...Level) LevelEnablerFunc
- func PanicLevelPartition() LevelEnablerFunc
- func WarnLevelPartition() LevelEnablerFunc
- type Log
- func (slf *Log) DPanic(msg string, fields ...Field)
- func (slf *Log) Debug(msg string, fields ...Field)
- func (slf *Log) Debugf(format string, args ...interface{})
- func (slf *Log) Error(msg string, fields ...Field)
- func (slf *Log) Errorf(format string, args ...interface{})
- func (slf *Log) Fatal(msg string, fields ...Field)
- func (slf *Log) Fatalf(format string, args ...interface{})
- func (slf *Log) Info(msg string, fields ...Field)
- func (slf *Log) Infof(format string, args ...interface{})
- func (slf *Log) Panic(msg string, fields ...Field)
- func (slf *Log) Printf(format string, args ...interface{})
- func (slf *Log) Warn(msg string, fields ...Field)
- func (slf *Log) Warnf(format string, args ...interface{})
- type Logger
- type Option
- type RunMode
Constants ¶
This section is empty.
Variables ¶
var ( // Skip 构造一个无操作字段,这在处理其他 Field 构造函数中的无效输入时通常很有用 Skip = zap.Skip // Binary 构造一个携带不透明二进制 blob 的字段。二进制数据以适合编码的格式进行序列化。例如,JSON 编码器对二进制 blob 进行 base64 编码。要记录 UTF-8 编码文本,请使用 ByteString Binary = zap.Binary // Bool 构造一个带有布尔值的字段 Bool = zap.Bool // BoolP 构造一个带有布尔值的字段。返回的 Field 将在适当的时候安全且显式地表示“nil” BoolP = zap.Boolp // ByteString 构造一个将 UTF-8 编码文本作为 [] 字节传送的字段。要记录不透明的二进制 blob(不一定是有效的 UTF-8),请使用 Binary ByteString = zap.ByteString // Complex128 构造一个带有复数的字段。与大多数数字字段不同,这需要分配(将complex128转换为interface{}) Complex128 = zap.Complex128 // Complex128P 构造一个带有complex128 的字段。返回的 Field 将在适当的时候安全且显式地表示“nil” Complex128P = zap.Complex128p // Complex64 构造一个带有复数的字段。与大多数数字字段不同,这需要分配(将complex64转换为interface{}) Complex64 = zap.Complex64 // Complex64P 构造一个带有complex64 的字段。返回的 Field 将在适当的时候安全且显式地表示“nil” Complex64P = zap.Complex64p // Float64 构造一个带有 float64 的字段。浮点值的表示方式取决于编码器,因此封送处理必然是惰性的 Float64 = zap.Float64 // Float64P 构造一个带有 float64 的字段。返回的 Field 将在适当的时候安全且显式地表示“nil” Float64P = zap.Float64p // Float32 构造一个带有 float32 的字段。浮点值的表示方式取决于编码器,因此封送处理必然是惰性的 Float32 = zap.Float32 // Float32P 构造一个带有 float32 的字段。返回的 Field 将在适当的时候安全且显式地表示“nil” Float32P = zap.Float32p // Int constructs a field with the given key and value. Int = zap.Int // IntP 构造一个带有 int 的字段。返回的 Field 将在适当的时候安全且显式地表示“nil” IntP = zap.Intp // Int64 使用给定的键和值构造一个字段. Int64 = zap.Int64 // Int64P 构造一个带有 int64 的字段。返回的 Field 将在适当的时候安全且显式地表示“nil” Int64P = zap.Int64p // Int32 使用给定的键和值构造一个字段 Int32 = zap.Int32 // Int32P 构造一个带有 int32 的字段。返回的 Field 将在适当的时候安全且显式地表示“nil”. Int32P = zap.Int32p // Int16 使用给定的键和值构造一个字段 Int16 = zap.Int16 // Int16P 构造一个带有 int16 的字段。返回的 Field 将在适当的时候安全且显式地表示“nil” Int16P = zap.Int16p // Int8 使用给定的键和值构造一个字段 Int8 = zap.Int8 // Int8P 构造一个带有 int8 的字段。返回的 Field 将在适当的时候安全且显式地表示“nil” Int8P = zap.Int8p // String 使用给定的键和值构造一个字段 String = zap.String // StringP 构造一个带有字符串的字段。返回的 Field 将在适当的时候安全且显式地表示“nil” StringP = zap.Stringp // Uint 使用给定的键和值构造一个字段 Uint = zap.Uint // UintP 构造一个带有 uint 的字段。返回的 Field 将在适当的时候安全且显式地表示“nil” UintP = zap.Uintp // Uint64 使用给定的键和值构造一个字段 Uint64 = zap.Uint64 // Uint64P 构造一个带有 uint64 的字段。返回的 Field 将在适当的时候安全且显式地表示“nil” Uint64P = zap.Uint64p // Uint32 使用给定的键和值构造一个字段 Uint32 = zap.Uint32 // Uint32P 构造一个带有 uint32 的字段。返回的 Field 将在适当的时候安全且显式地表示“nil” Uint32P = zap.Uint32p // Uint16 使用给定的键和值构造一个字段 Uint16 = zap.Uint16 // Uint16P 构造一个带有 uint16 的字段。返回的 Field 将在适当的时候安全且显式地表示“nil” Uint16P = zap.Uint16p // Uint8 使用给定的键和值构造一个字段 Uint8 = zap.Uint8 // Uint8P 构造一个带有 uint8 的字段。返回的 Field 将在适当的时候安全且显式地表示“nil” Uint8P = zap.Uint8p // Uintptr 使用给定的键和值构造一个字段 Uintptr = zap.Uintptr // UintptrP 构造一个带有 uintptr 的字段。返回的 Field 将在适当的时候安全且显式地表示“nil” UintptrP = zap.Uintptrp // Reflect 使用给定的键和任意对象构造一个字段。它使用适当的编码、基于反射的方式将几乎任何对象延迟序列化到日志记录上下文中,但它相对较慢且分配繁重。在测试之外,Any 始终是更好的选择 // - 如果编码失败(例如,尝试将 map[int]string 序列化为 JSON),Reflect 将在最终日志输出中包含错误消息 Reflect = zap.Reflect // Namespace 命名空间在记录器的上下文中创建一个命名的、隔离的范围。所有后续字段都将添加到新的命名空间中 // - 这有助于防止将记录器注入子组件或第三方库时发生按键冲突 Namespace = zap.Namespace // Stringer 使用给定的键和值的 String 方法的输出构造一个字段。 Stringer 的 String 方法被延迟调用 Stringer = zap.Stringer // Time 使用给定的键和值构造一个 Field。编码器控制时间的序列化方式 Time = zap.Time // TimeP 构造一个带有 time.Time 的字段。返回的 Field 将在适当的时候安全且显式地表示“nil” TimeP = zap.Timep // Stack 构造一个字段,在提供的键下存储当前 goroutine 的堆栈跟踪。请记住,进行堆栈跟踪是急切且昂贵的(相对而言);此操作会进行分配并花费大约两微秒的时间 Stack = zap.Stack // StackSkip 构造一个与 Stack 类似的字段,但也会从堆栈跟踪顶部跳过给定数量的帧 StackSkip = zap.StackSkip // Duration 使用给定的键和值构造一个字段。编码器控制持续时间的序列化方式 Duration = func(key string, val time.Duration) Field { return String(key, val.String()) } // DurationP 构造一个带有 time.Duration 的字段。返回的 Field 将在适当的时候安全且显式地表示“nil” DurationP = func(key string, val *time.Duration) Field { var s = (*val).String() return StringP(key, &s) } // Object 使用给定的键和 ObjectMarshaler 构造一个字段。它提供了一种灵活但仍然类型安全且高效的方法来将类似映射或结构的用户定义类型添加到日志记录上下文。该结构的 MarshalLogObject 方法被延迟调用 Object = zap.Object // Inline 构造一个与 Object 类似的 Field,但它会将提供的 ObjectMarshaler 的元素添加到当前命名空间 Inline = zap.Inline // Any 接受一个键和一个任意值,并选择将它们表示为字段的最佳方式,仅在必要时才回退到基于反射的方法。 // 由于 byteuint8 和 runeint32 是别名,Any 无法区分它们。为了尽量减少意外情况,[]byte 值被视为二进制 blob,字节值被视为 uint8,而 runes 始终被视为整数 Any = zap.Any // Err 是常见习语 NamedError("error", err) 的简写 Err = zap.Error )
Functions ¶
func DPanic ¶ added in v0.0.13
DPanic 在 DPanicLevel 记录一条消息。该消息包括在日志站点传递的任何字段以及记录器上累积的任何字段
- 如果记录器处于开发模式,它就会出现 panic(DPanic 的意思是“development panic”)。这对于捕获可恢复但不应该发生的错误很有用
func Fatal ¶ added in v0.0.13
Fatal 在 FatalLevel 记录一条消息。该消息包括在日志站点传递的任何字段以及记录器上累积的任何字段
- 然后记录器调用 os.Exit(1),即使 FatalLevel 的日志记录被禁用
Types ¶
type Level ¶ added in v0.0.13
const ( // DebugLevel 调试级别日志通常非常庞大,并且通常在生产中被禁用 DebugLevel Level = zapcore.DebugLevel // InfoLevel 是默认的日志记录优先级 InfoLevel Level = zapcore.InfoLevel // WarnLevel 日志比信息更重要,但不需要单独的人工审核 WarnLevel Level = zapcore.WarnLevel // ErrorLevel 日志具有高优先级。如果应用程序运行顺利,它不应该生成任何错误级别的日志 ErrorLevel Level = zapcore.ErrorLevel // DPanicLevel 日志是特别重要的错误。在开发中,记录器在写入消息后会出现恐慌 DPanicLevel Level = zapcore.DPanicLevel // PanicLevel 记录一条消息,然后出现恐慌 PanicLevel Level = zapcore.PanicLevel // FatalLevel 记录一条消息,然后调用 os.Exit(1) FatalLevel Level = zapcore.FatalLevel )
type LevelEnablerFunc ¶ added in v0.0.13
type LevelEnablerFunc = zap.LevelEnablerFunc
func DPanicLevelPartition ¶ added in v0.0.13
func DPanicLevelPartition() LevelEnablerFunc
DPanicLevelPartition 返回一个 LevelEnablerFunc,该函数在 DPanicLevel 时返回 true
- 该函数被用于划分不同级别的日志输出
func DebugLevelPartition ¶ added in v0.0.13
func DebugLevelPartition() LevelEnablerFunc
DebugLevelPartition 返回一个 LevelEnablerFunc,该函数在 DebugLevel 时返回 true
- 该函数被用于划分不同级别的日志输出
func ErrorLevelPartition ¶ added in v0.0.13
func ErrorLevelPartition() LevelEnablerFunc
ErrorLevelPartition 返回一个 LevelEnablerFunc,该函数在 ErrorLevel 时返回 true
- 该函数被用于划分不同级别的日志输出
func FatalLevelPartition ¶ added in v0.0.13
func FatalLevelPartition() LevelEnablerFunc
FatalLevelPartition 返回一个 LevelEnablerFunc,该函数在 FatalLevel 时返回 true
- 该函数被用于划分不同级别的日志输出
func InfoLevelPartition ¶ added in v0.0.13
func InfoLevelPartition() LevelEnablerFunc
InfoLevelPartition 返回一个 LevelEnablerFunc,该函数在 InfoLevel 时返回 true
- 该函数被用于划分不同级别的日志输出
func MultiLevelPartition ¶ added in v0.0.13
func MultiLevelPartition(levels ...Level) LevelEnablerFunc
MultiLevelPartition 返回一个 LevelEnablerFunc,该函数在指定的多个级别时返回 true
- 该函数被用于划分不同级别的日志输出
func PanicLevelPartition ¶ added in v0.0.13
func PanicLevelPartition() LevelEnablerFunc
PanicLevelPartition 返回一个 LevelEnablerFunc,该函数在 PanicLevel 时返回 true
- 该函数被用于划分不同级别的日志输出
func WarnLevelPartition ¶ added in v0.0.13
func WarnLevelPartition() LevelEnablerFunc
WarnLevelPartition 返回一个 LevelEnablerFunc,该函数在 WarnLevel 时返回 true
- 该函数被用于划分不同级别的日志输出
type Log ¶ added in v0.0.13
type Log struct {
// contains filtered or unexported fields
}
func (*Log) DPanic ¶ added in v0.0.13
DPanic 在 DPanicLevel 记录一条消息。该消息包括在日志站点传递的任何字段以及记录器上累积的任何字段
- 如果记录器处于开发模式,它就会出现 panic(DPanic 的意思是“development panic”)。这对于捕获可恢复但不应该发生的错误很有用
func (*Log) Fatal ¶ added in v0.0.13
Fatal 在 FatalLevel 记录一条消息。该消息包括在日志站点传递的任何字段以及记录器上累积的任何字段
- 然后记录器调用 os.Exit(1),即使 FatalLevel 的日志记录被禁用
func (*Log) Panic ¶ added in v0.0.13
Panic 在 PanicLevel 记录一条消息。该消息包括在日志站点传递的任何字段以及记录器上累积的任何字段
- 即使禁用了 PanicLevel 的日志记录,记录器也会出现 panic
type Logger ¶ added in v0.0.4
type Logger interface { ants.Logger logging.Logger // Debug 在 DebugLevel 记录一条消息。该消息包括在日志站点传递的任何字段以及记录器上累积的任何字段 Debug(msg string, fields ...Field) // Info 在 InfoLevel 记录一条消息。该消息包括在日志站点传递的任何字段以及记录器上累积的任何字段 Info(msg string, fields ...Field) // Warn 在 WarnLevel 记录一条消息。该消息包括在日志站点传递的任何字段以及记录器上累积的任何字段 Warn(msg string, fields ...Field) // Error 在 ErrorLevel 记录一条消息。该消息包括在日志站点传递的任何字段以及记录器上累积的任何字段 Error(msg string, fields ...Field) // DPanic 在 DPanicLevel 记录一条消息。该消息包括在日志站点传递的任何字段以及记录器上累积的任何字段 // - 如果记录器处于开发模式,它就会出现 panic(DPanic 的意思是“development panic”)。这对于捕获可恢复但不应该发生的错误很有用 DPanic(msg string, fields ...Field) // Panic 在 PanicLevel 记录一条消息。该消息包括在日志站点传递的任何字段以及记录器上累积的任何字段 // - 即使禁用了 PanicLevel 的日志记录,记录器也会出现 panic Panic(msg string, fields ...Field) // Fatal 在 FatalLevel 记录一条消息。该消息包括在日志站点传递的任何字段以及记录器上累积的任何字段 // - 然后记录器调用 os.Exit(1),即使 FatalLevel 的日志记录被禁用 Fatal(msg string, fields ...Field) }
Logger 适用于 Minotaur 的日志接口
type Option ¶ added in v0.0.13
type Option func(log *Log)
func WithRotateFilename ¶ added in v0.0.13
WithRotateFilename 设置日志分割文件名
- 默认的日志分割文件名为: {level}.%Y%m%d.log
func WithRotateOption ¶ added in v0.0.13
func WithRotateOption(options ...rotateLogs.Option) Option
WithRotateOption 设置日志分割选项
- 默认的日志分割选项为: WithMaxAge(7天), WithRotationTime(1天)
func WithRunMode ¶ added in v0.0.13
WithRunMode 设置运行模式
- 默认的运行模式为: RunModeDev
- 当 handle 不为空时,将会调用 handle(),并将返回值添加到日志记录器中,同时将会抑制默认的日志记录器