mirror of
https://gitee.com/johng/gf
synced 2026-06-07 10:22:11 +08:00
@ -20,6 +20,7 @@ type Logger struct {
|
||||
path *gtype.String // 日志写入的目录路径
|
||||
debug *gtype.Bool // 是否允许输出DEBUG信息
|
||||
btSkip *gtype.Int // 错误产生时的backtrace回调信息skip条数
|
||||
stdprint *gtype.Bool // 控制台打印开关 @author zseeker
|
||||
}
|
||||
|
||||
// 默认的日志对象
|
||||
@ -32,6 +33,7 @@ func New() *Logger {
|
||||
path : gtype.NewString(),
|
||||
debug : gtype.NewBool(true),
|
||||
btSkip : gtype.NewInt(3),
|
||||
stdprint : gtype.NewBool(false),
|
||||
}
|
||||
}
|
||||
|
||||
@ -50,6 +52,13 @@ func GetPath() string {
|
||||
return logger.path.Val()
|
||||
}
|
||||
|
||||
// 设置写日志的同时开启or关闭控制台打印,默认是关闭的
|
||||
// @author zseeker
|
||||
// @date 2018-05-24
|
||||
func SetStdPrint(open bool) {
|
||||
logger.SetStdPrint(open)
|
||||
}
|
||||
|
||||
func Print(v ...interface{}) {
|
||||
logger.Print(v ...)
|
||||
}
|
||||
|
||||
@ -33,7 +33,7 @@ var ln = "\n"
|
||||
func init() {
|
||||
if runtime.GOOS == "windows" {
|
||||
ln = "\r\n"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 设置BacktraceSkip
|
||||
@ -95,12 +95,23 @@ func (l *Logger) SetPath(path string) error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// 设置写日志时开启or关闭控制台打印,默认是关闭的
|
||||
// @author zseeker
|
||||
// @date 2018-05-24
|
||||
func (l *Logger) SetStdPrint(open bool) {
|
||||
l.stdprint.Set(open)
|
||||
}
|
||||
|
||||
// 这里的写锁保证统一时刻只会写入一行日志,防止串日志的情况
|
||||
func (l *Logger) print(defaultIO io.Writer, s string) {
|
||||
w := l.GetIO()
|
||||
if w == nil {
|
||||
if v := l.getFileByPool(); v != nil {
|
||||
w = v.File()
|
||||
// 同时输出到文件和终端 @author zseeker
|
||||
if l.stdprint.Val() {
|
||||
w = io.MultiWriter(w, defaultIO)
|
||||
}
|
||||
defer v.Close()
|
||||
} else {
|
||||
w = defaultIO
|
||||
|
||||
Reference in New Issue
Block a user