Documentation ¶
Overview ¶
Package log micserver 中使用的 log 系统,支持 Syslog(系统信息)/Debug(调试)/Info(关心的)/ Warning(警告)/Error(错误)/Fatal(致命) 日志级别,日志可按大小/小时转储。 建议: 系统运行的各个细节/详细步骤使用 Syslog 级别记录,为了减小 log 系统造成的运算负担, 应该先使用 IsSyslogEnable() 判断 Syslog 级别的日志是否开启,再调用 Syslog() 记录; 业务的主要环节/关键节点的调试使用 Debug 级别记录; 业务造成的结果,或需要在后续运营维护中查看用户信息变更,使用 Info 级别记录; 客户端/用户的输入错误,或者系统设计意外的条件不满足,使用 Warning 级别记录; 该分布式系统内部的错误值(与客户端等无关),但是可以恢复或者对业务逻辑没有影响时, 使用 Error 级别记录; 在 Error 级别的基础上,如果错误无法代码恢复或者对业务逻辑产生必要影响时,使用 Fatal 级别记录。 在生产环境/正式环境中,应该将日志等级至高调整至 Info ,在需要必要的调试信息时, 可调整至 Debug 。不要在正式环境中启用 Syslog 日志等级,你只应该在开发环境中使用它。 Warning / Error / Fatal 日志级别,无论何时你都要谨慎关闭他们,如果你确定不关心 你业务的信息,可以调整至 Warning 级别,但是无论如何,关闭警告或者错误都是一个极具风险 的决定。
Index ¶
- Variables
- func Debug(fmt string, args ...interface{})
- func Error(fmt string, args ...interface{})
- func Fatal(fmt string, args ...interface{})
- func Info(fmt string, args ...interface{})
- func IsDebugEnable() bool
- func IsErrorEnable() bool
- func IsFatalEnable() bool
- func IsInfoEnable() bool
- func IsSyslogEnable() bool
- func IsWarnEnable() bool
- func SetDefaultLogger(l *Logger)
- func SetLogLevel(lvl Level)
- func SetLogLevelByStr(lvl string) error
- func Syslog(fmt string, args ...interface{})
- func Warn(fmt string, args ...interface{})
- type Flusher
- type ILogger
- type Level
- type Logger
- func (l *Logger) Clone() *Logger
- func (l *Logger) Debug(fmt string, args ...interface{})
- func (l *Logger) Error(fmt string, args ...interface{})
- func (l *Logger) Fatal(fmt string, args ...interface{})
- func (l *Logger) GetLogger() *Logger
- func (l *Logger) Info(fmt string, args ...interface{})
- func (l *Logger) IsDebugEnable() bool
- func (l *Logger) IsErrorEnable() bool
- func (l *Logger) IsFatalEnable() bool
- func (l *Logger) IsInfoEnable() bool
- func (l *Logger) IsSyslogEnable() bool
- func (l *Logger) IsWarnEnable() bool
- func (l *Logger) SetLogLevel(lvl Level)
- func (l *Logger) SetLogLevelByStr(lvl string) error
- func (l *Logger) SetLogName(logname string)
- func (l *Logger) SetTopic(topic string) error
- func (l *Logger) Syslog(fmt string, args ...interface{})
- func (l *Logger) Warn(fmt string, args ...interface{})
- type Options
- type Record
- type Rotater
- type Writer
Constants ¶
This section is empty.
Variables ¶
var ( ErrNilLogger = errors.New("logger is nil") ErrUnknownLogLevel = errors.New("unknown log level") )
error
Functions ¶
func SetLogLevelByStr ¶
SetLogLevelByStr 默认 Logger 使用等级名设置日志等级
Types ¶
type ILogger ¶
type ILogger interface { Syslog(fmt string, args ...interface{}) Debug(fmt string, args ...interface{}) Warn(fmt string, args ...interface{}) Info(fmt string, args ...interface{}) Error(fmt string, args ...interface{}) Fatal(fmt string, args ...interface{}) IsSyslogEnable() bool IsDebugEnable() bool IsWarnEnable() bool IsInfoEnable() bool IsErrorEnable() bool IsFatalEnable() bool Clone() *Logger SetTopic(topic string) GetLogLevel() int32 SetLogName(logname string) GetLogger() *Logger }
ILogger 日志系统实现的接口
type Logger ¶
type Logger struct {
// contains filtered or unexported fields
}
Logger 日志实例
func (*Logger) GetLogger ¶
GetLogger 获取当前 Logger 的 Logger ,意义在于会进行接收器 Logger 是否为空的判断, 如果为空,底层默认会使用 defaultLogger 操作,因此返回 defaultLogger 。
func (*Logger) IsDebugEnable ¶
IsDebugEnable 判断 Debug 日志级别是否开启
func (*Logger) IsErrorEnable ¶
IsErrorEnable 判断 Error 日志级别是否开启
func (*Logger) IsFatalEnable ¶
IsFatalEnable 判断 Fatal 日志级别是否开启
func (*Logger) IsSyslogEnable ¶
IsSyslogEnable 判断 Syslog 日志级别是否开启
func (*Logger) SetLogLevelByStr ¶
SetLogLevelByStr 使用等级名设置日志等级
func (*Logger) SetLogName ¶
SetLogName 设置日志名称,一般使用进程或者模块名字
type Options ¶
type Options struct { // NoConsole while remove console out put, default false. NoConsole bool // NoConsoleColor whil disable console output color, default false. NoConsoleColor bool // FilePaths is the log output file path, default none log file. FilePaths []string // RecordTimeLayout use for (time.Time).Format(layout string) record time field, default "060102-15:04:05", // will not be empty. RecordTimeLayout string // Level log record level limit, only higer thie level log can be get reach Writer, default SYS. Level Level // Name is thie logger name, default "". Name string // Topic is thie logger topic, default "". Topic string // AsyncWrite while asynchronously output the log record to Write, it may be more performance, // but if you exit(e.g. os.Exit(1), main() return) this process, it may be loss some log record, // because they didn't have time to Write and flush to file. AsyncWrite bool // AsyncWriteDuration only effective when AsyncWrite is true, this is time duration of asynchronously // check log output to write default 100ms. AsyncWriteDuration time.Duration // RedirectError duplicate stderr to log file, it will be call syscall.Dup2 in linux or syscall.DuplicateHandle // in windows, default false. RedirectError bool // RotateTimeLayout use of (time.Time).Format(layout string) to check if a roteta file is required. // default "", will disable rotate. Highest accuracy is minutes. RotateTimeLayout string }
Options of log