diff --git a/g/os/glog/glog.go b/g/os/glog/glog.go index 00f825d81..c042c4d5b 100644 --- a/g/os/glog/glog.go +++ b/g/os/glog/glog.go @@ -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 ...) } diff --git a/g/os/glog/glog_logger.go b/g/os/glog/glog_logger.go index cc9ef47eb..b00f56a14 100644 --- a/g/os/glog/glog_logger.go +++ b/g/os/glog/glog_logger.go @@ -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