!6 新增glog控制台打印开关

Merge pull request !6 from zseeker/zseeker_glog
This commit is contained in:
zseeker
2018-05-24 18:27:06 +08:00
committed by John
2 changed files with 21 additions and 1 deletions

View File

@ -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 ...)
}

View File

@ -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