Documentation ¶
Overview ¶
Example (Context) ¶
package main import ( "context" "github.com/osgochina/donkeygo/os/dlog" ) func main() { ctx := context.WithValue(context.Background(), "Trace-Id", "123456789") dlog.Ctx(ctx).Error("runtime error") // May Output: // 2020-06-08 20:17:03.630 [ERRO] {Trace-Id: 123456789} runtime error // Stack: // ... }
Output:
Index ¶
- Constants
- func Critical(v ...interface{})
- func Criticalf(format string, v ...interface{})
- func Debug(v ...interface{})
- func Debugf(format string, v ...interface{})
- func Error(v ...interface{})
- func Errorf(format string, v ...interface{})
- func Fatal(v ...interface{})
- func Fatalf(format string, v ...interface{})
- func GetCtxKeys() []interface{}
- func GetFlags() int
- func GetLevel() int
- func GetLevelPrefix(level int) string
- func GetPath() string
- func GetStack(skip ...int) string
- func GetWriter() io.Writer
- func Info(v ...interface{})
- func Infof(format string, v ...interface{})
- func Notice(v ...interface{})
- func Noticef(format string, v ...interface{})
- func Panic(v ...interface{})
- func Panicf(format string, v ...interface{})
- func Print(v ...interface{})
- func PrintStack(skip ...int)
- func Printf(format string, v ...interface{})
- func Println(v ...interface{})
- func SetAsync(enabled bool)
- func SetConfig(config Config) error
- func SetConfigWithMap(m map[string]interface{}) error
- func SetCtxKeys(keys ...interface{})
- func SetDebug(debug bool)
- func SetDefaultLogger(l *Logger)
- func SetFile(pattern string)
- func SetFlags(flags int)
- func SetHeaderPrint(enabled bool)
- func SetLevel(level int)
- func SetLevelPrefix(level int, prefix string)
- func SetLevelPrefixes(prefixes map[int]string)
- func SetLevelStr(levelStr string) error
- func SetPath(path string) error
- func SetPrefix(prefix string)
- func SetStack(enabled bool)
- func SetStdoutPrint(enabled bool)
- func SetWriter(writer io.Writer)
- func Warning(v ...interface{})
- func Warningf(format string, v ...interface{})
- type Config
- type Logger
- func Async(enabled ...bool) *Logger
- func Cat(category string) *Logger
- func Ctx(ctx context.Context, keys ...interface{}) *Logger
- func DefaultLogger() *Logger
- func Expose() *Logger
- func File(pattern string) *Logger
- func Header(enabled ...bool) *Logger
- func Instance(name ...string) *Logger
- func Level(level int) *Logger
- func LevelStr(levelStr string) *Logger
- func Line(long ...bool) *Logger
- func New() *Logger
- func NewWithWriter(writer io.Writer) *Logger
- func Path(path string) *Logger
- func Skip(skip int) *Logger
- func Stack(enabled bool, skip ...int) *Logger
- func StackWithFilter(filter string) *Logger
- func Stdout(enabled ...bool) *Logger
- func To(writer io.Writer) *Logger
- func (that *Logger) Async(enabled ...bool) *Logger
- func (that *Logger) Cat(category string) *Logger
- func (that *Logger) Clone() *Logger
- func (that *Logger) Critical(v ...interface{})
- func (that *Logger) Criticalf(format string, v ...interface{})
- func (that *Logger) Ctx(ctx context.Context, keys ...interface{}) *Logger
- func (that *Logger) Debug(v ...interface{})
- func (that *Logger) Debugf(format string, v ...interface{})
- func (that *Logger) Error(v ...interface{})
- func (that *Logger) Errorf(format string, v ...interface{})
- func (that *Logger) Fatal(v ...interface{})
- func (that *Logger) Fatalf(format string, v ...interface{})
- func (that *Logger) File(file string) *Logger
- func (that *Logger) GetCtxKeys() []interface{}
- func (that *Logger) GetFlags() int
- func (that *Logger) GetLevel() int
- func (that *Logger) GetLevelPrefix(level int) string
- func (that *Logger) GetPath() string
- func (that *Logger) GetStack(skip ...int) string
- func (that *Logger) GetWriter() io.Writer
- func (that *Logger) Header(enabled ...bool) *Logger
- func (that *Logger) Info(v ...interface{})
- func (that *Logger) Infof(format string, v ...interface{})
- func (that *Logger) Level(level int) *Logger
- func (that *Logger) LevelStr(levelStr string) *Logger
- func (that *Logger) Line(long ...bool) *Logger
- func (that *Logger) Notice(v ...interface{})
- func (that *Logger) Noticef(format string, v ...interface{})
- func (that *Logger) Panic(v ...interface{})
- func (that *Logger) Panicf(format string, v ...interface{})
- func (that *Logger) Path(path string) *Logger
- func (that *Logger) Print(v ...interface{})
- func (that *Logger) PrintStack(skip ...int)
- func (that *Logger) Printf(format string, v ...interface{})
- func (that *Logger) Println(v ...interface{})
- func (that *Logger) SetAsync(enabled bool)
- func (that *Logger) SetConfig(config Config) error
- func (that *Logger) SetConfigWithMap(m map[string]interface{}) error
- func (that *Logger) SetCtxKeys(keys ...interface{})
- func (that *Logger) SetDebug(debug bool)
- func (that *Logger) SetFile(pattern string)
- func (that *Logger) SetFlags(flags int)
- func (that *Logger) SetHeaderPrint(enabled bool)
- func (that *Logger) SetLevel(level int)
- func (that *Logger) SetLevelPrefix(level int, prefix string)
- func (that *Logger) SetLevelPrefixes(prefixes map[int]string)
- func (that *Logger) SetLevelStr(levelStr string) error
- func (that *Logger) SetPath(path string) error
- func (that *Logger) SetPrefix(prefix string)
- func (that *Logger) SetStack(enabled bool)
- func (that *Logger) SetStackFilter(filter string)
- func (that *Logger) SetStackSkip(skip int)
- func (that *Logger) SetStdoutPrint(enabled bool)
- func (that *Logger) SetWriter(writer io.Writer)
- func (that *Logger) Skip(skip int) *Logger
- func (that *Logger) Stack(enabled bool, skip ...int) *Logger
- func (that *Logger) StackWithFilter(filter string) *Logger
- func (that *Logger) Stdout(enabled ...bool) *Logger
- func (that *Logger) To(writer io.Writer) *Logger
- func (that *Logger) Warning(v ...interface{})
- func (that *Logger) Warningf(format string, v ...interface{})
- func (that *Logger) Write(p []byte) (n int, err error)
Examples ¶
Constants ¶
const ( FAsync = 1 << iota // 异步打印日志内容 FFileLong // 打印完整的文件名和行号: /a/b/c/d.go:23. FFileShort // 打印最终的文件名和行号: d.go:23. 覆盖 FFileLong. FTimeDate // 打印当地时区的日期信息: 2009-01-23. FTimeTime // 打印当地时区的时间信息: 01:23:23. FTimeMilli // 以当地时间的毫秒为单位打印信息: 01:23:23.675. FCallerFn // 打印调用这的函数名及包名: main.main FTimeStd = FTimeDate | FTimeMilli //标准时间格式 )
const ( // LevelAll 所有级别都匹配 LevelAll = LevelDebug | LevelInfo | LevelNotice | LevelWarning | LevelError | LevelCritical // LevelDev 开发状态的日志级别,所有级别都匹配 LevelDev = LevelAll // LevelProd 线上生产环节的日志级别 LevelProd = LevelWarning | LevelError | LevelCritical // LevelDebug debug模式的日志级别 LevelDebug = 1 << iota // 8 // LevelInfo 打印详情 LevelInfo // 16 // LevelNotice 注意提醒级别 LevelNotice // 32 // LevelWarning 警告级别 LevelWarning // 64 // LevelError 错误 LevelError // 128 // LevelCritical 至关重要的日志 LevelCritical // 256 // LevelPanic Panic 错误 LevelPanic // 512 // LevelFatal 致命错误 LevelFatal // 1024 )
日志级别
const (
// DefaultName Default group name for instance usage.
DefaultName = "default"
)
Variables ¶
This section is empty.
Functions ¶
func GetLevelPrefix ¶ added in v0.0.3
GetLevelPrefix 获取日志级别的前缀
func SetConfigWithMap ¶ added in v0.0.3
SetConfigWithMap 通过map格式设置配置信息
func SetDefaultLogger ¶ added in v0.0.3
func SetDefaultLogger(l *Logger)
SetDefaultLogger 设置默认的日志处理对象
func SetLevelPrefix ¶ added in v0.0.3
SetLevelPrefix 设置日志级别前缀
func SetLevelPrefixes ¶ added in v0.0.3
SetLevelPrefixes 设置日志级别的前缀
Types ¶
type Config ¶
type Config struct { Writer io.Writer `json:"-"` // 定制 io.Writer. Flags int `json:"flags"` // 用户记录日志的额外标识 Path string `json:"path"` // 日志目录地址 File string `json:"file"` // 当前日志需要保存的文件 Level int `json:"level"` // 日志的输出等级 Prefix string `json:"prefix"` // 每条日志的前缀 StSkip int `json:"stSkip"` // 跳过多少层栈堆不用打印 StStatus int `json:"stStatus"` // 是否打开栈堆信息 1:打开,0关闭,默认是打开 StFilter string `json:"stFilter"` // 栈堆字符串过滤 CtxKeys []interface{} `json:"ctxKeys"` // 用于日志记录的上下文键,用于从上下文检索值。 StdoutPrint bool `json:"stdout"` // 开启日志的标准输出,默认是true. HeaderPrint bool `json:"header"` // 打印日志标题,默认是true LevelPrefixes map[int]string `json:"levelPrefixes"` // 日志级别的前缀映射 RotateCheckInterval time.Duration `json:"rotateCheckInterval"` // 每隔多久检查一下日志文件,看看日志文件是否需要压缩备份。默认是1小时 RotateSize int64 `json:"rotateSize"` // 如果日志文件 size > RotateSize 则旋转日志. RotateExpire time.Duration `json:"rotateExpire"` // 如果日志文件的最后更新日志大于RotateExpire则旋转日志。 RotateBackupLimit int `json:"rotateBackupLimit"` // 最大旋转备份的文件数量,默认是0,意味着没有备份. RotateBackupExpire time.Duration `json:"rotateBackupExpire"` // 旋转文件的最大过期时间,默认是0,意味着不过期。 RotateBackupCompress int `json:"rotateBackupCompress"` // 使用gzip算法压缩旋转文件的级别。默认值是0,表示没有压缩。 }
Config 日志的配置信息
type Logger ¶
type Logger struct {
// contains filtered or unexported fields
}
Logger 日志对象
func NewWithWriter ¶ added in v0.0.3
NewWithWriter 创建一个日志对象,使用传入的writer
func StackWithFilter ¶ added in v0.0.3
StackWithFilter 打印错误栈堆的过滤字符串
func (*Logger) Critical ¶ added in v0.0.3
func (that *Logger) Critical(v ...interface{})
Critical 打印重要的日志
func (*Logger) Fatal ¶ added in v0.0.3
func (that *Logger) Fatal(v ...interface{})
Fatal 打印致命错误,并结束当前进程
func (*Logger) GetCtxKeys ¶ added in v0.0.3
func (that *Logger) GetCtxKeys() []interface{}
GetCtxKeys 获取上下文记录的key值
func (*Logger) GetLevelPrefix ¶ added in v0.0.3
GetLevelPrefix 获取指定日志级别的前缀
func (*Logger) Panic ¶ added in v0.0.3
func (that *Logger) Panic(v ...interface{})
Panic 打印日志并且 panic
func (*Logger) PrintStack ¶ added in v0.0.3
PrintStack 打印栈堆
func (*Logger) Printf ¶ added in v0.0.3
Printf prints <v> with format <format> using fmt.Sprintf. The parameter <v> can be multiple variables.
func (*Logger) Println ¶ added in v0.0.3
func (that *Logger) Println(v ...interface{})
Println is alias of Print. See Print.
func (*Logger) SetConfigWithMap ¶ added in v0.0.3
SetConfigWithMap 通过map传入配置信息
func (*Logger) SetCtxKeys ¶ added in v0.0.3
func (that *Logger) SetCtxKeys(keys ...interface{})
SetCtxKeys 设置日志的上下文键。键用于检索值 从上下文和打印到日志内容。
func (*Logger) SetHeaderPrint ¶ added in v0.0.3
SetHeaderPrint 是否打印日志头
func (*Logger) SetLevelPrefix ¶ added in v0.0.3
SetLevelPrefix 设置各种日志级别对应的前缀
func (*Logger) SetLevelPrefixes ¶ added in v0.0.3
SetLevelPrefixes 设置各种日志级别对应的前缀
func (*Logger) SetLevelStr ¶ added in v0.0.3
SetLevelStr 通过可读字符串设置日志级别
func (*Logger) SetStackFilter ¶ added in v0.0.3
SetStackFilter 设置栈堆字符串过滤器
func (*Logger) SetStackSkip ¶ added in v0.0.3
SetStackSkip 设置打印栈堆信息的偏移量,从错误触发点开始算第几层
func (*Logger) SetStdoutPrint ¶ added in v0.0.3
SetStdoutPrint 开启关闭日志的标准输出
func (*Logger) SetWriter ¶ added in v0.0.3
SetWriter 设置自定义日志用于日志记录。 对象应该实现io.writer接口。 开发者可以使用自定义日志将日志输出重定向到另一个服务, 例如:kafka, mysql, mongodb等。
func (*Logger) StackWithFilter ¶ added in v0.0.3
StackWithFilter 设置栈堆过滤字符串
func (*Logger) Warning ¶ added in v0.0.3
func (that *Logger) Warning(v ...interface{})
Warning 打印警告日志