suffix
Test / uint (1.19.13, ubuntu-latest) (push) Waiting to run
Details
Test / uint (>=1.20, ubuntu-latest) (push) Waiting to run
Details
Security / scan (1.19.13) (push) Successful in 55s
Details
Security / scan (>=1.20) (push) Successful in 45s
Details
Verify / lint (1.19.13) (push) Successful in 1m8s
Details
Verify / lint (>=1.20) (push) Successful in 1m0s
Details
Test / uint (1.19.13, ubuntu-latest) (push) Waiting to run
Details
Test / uint (>=1.20, ubuntu-latest) (push) Waiting to run
Details
Security / scan (1.19.13) (push) Successful in 55s
Details
Security / scan (>=1.20) (push) Successful in 45s
Details
Verify / lint (1.19.13) (push) Successful in 1m8s
Details
Verify / lint (>=1.20) (push) Successful in 1m0s
Details
This commit is contained in:
parent
210dcda822
commit
55933a6bd6
92
glog.go
92
glog.go
|
@ -19,6 +19,7 @@ const (
|
|||
MaskWARNING
|
||||
MaskERROR
|
||||
MaskFATAL
|
||||
|
||||
MaskStd = MaskINFO | MaskWARNING | MaskERROR | MaskFATAL
|
||||
MaskAll = MaskUNKNOWN | MaskDEBUG | MaskTRACE | MaskINFO | MaskWARNING | MaskERROR | MaskFATAL
|
||||
)
|
||||
|
@ -30,20 +31,26 @@ const (
|
|||
FlagShortFile
|
||||
FlagFunc
|
||||
FlagPrefix
|
||||
FlagSuffix
|
||||
|
||||
FlagStd = FlagDate | FlagTime | FlagPrefix
|
||||
FlagAll = FlagDate | FlagTime | FlagShortFile | FlagFunc | FlagPrefix
|
||||
FlagAll = FlagDate | FlagTime | FlagShortFile | FlagFunc | FlagPrefix | FlagSuffix
|
||||
)
|
||||
|
||||
var (
|
||||
prefixUNKNOWN = "[UNKNOWN] "
|
||||
prefixDEBUG = "[DEBUG ] "
|
||||
prefixTRACE = "[TRACE ] "
|
||||
prefixINFO = "[INFO ] "
|
||||
prefixWARNING = "[WARNING] "
|
||||
prefixERROR = "[ERROR ] "
|
||||
prefixFATAL = "[FATAL ] "
|
||||
prefixUNKNOWN = "[UNKNOWN]"
|
||||
prefixDEBUG = "[DEBUG ]"
|
||||
prefixTRACE = "[TRACE ]"
|
||||
prefixINFO = "[INFO ]"
|
||||
prefixWARNING = "[WARNING]"
|
||||
prefixERROR = "[ERROR ]"
|
||||
prefixFATAL = "[FATAL ]"
|
||||
)
|
||||
|
||||
var separatorStart = " : "
|
||||
var separatorEnd = " [ "
|
||||
var separatorEndEnd = " ]"
|
||||
|
||||
var mask uint32 = MaskStd
|
||||
var flag uint32 = FlagStd
|
||||
|
||||
|
@ -51,6 +58,18 @@ var stdout = NewPaperFromFile(os.Stdout)
|
|||
var stderr = NewPaperFromFile(os.Stderr)
|
||||
var file = NewPaperFromFile(nil)
|
||||
|
||||
func SetSeparatorStart(sep string) {
|
||||
separatorStart = sep
|
||||
}
|
||||
|
||||
func SetSeparatorEnd(sep string) {
|
||||
separatorEnd = sep
|
||||
}
|
||||
|
||||
func SetSeparatorEndEnd(end string) {
|
||||
separatorEndEnd = end
|
||||
}
|
||||
|
||||
func SetMask(m uint32) {
|
||||
atomic.StoreUint32(&mask, m)
|
||||
}
|
||||
|
@ -107,55 +126,74 @@ func write(w *Paper, prefix string, format string, values ...any) {
|
|||
if !w.Ready() {
|
||||
return
|
||||
}
|
||||
log := strings.Builder{}
|
||||
logPrefix := strings.Builder{}
|
||||
logSuffix := strings.Builder{}
|
||||
now := ""
|
||||
flg := GetFlag()
|
||||
|
||||
if (flg&FlagDate) != 0 && (flg&FlagTime) != 0 {
|
||||
now = time.Now().Format("2006-01-02 15:04:05 ")
|
||||
now = time.Now().Format("2006-01-02 15:04:05")
|
||||
} else if (flg & FlagDate) != 0 {
|
||||
now = time.Now().Format("2006-01-02 ")
|
||||
now = time.Now().Format("2006-01-02")
|
||||
} else if (flg & FlagTime) != 0 {
|
||||
now = time.Now().Format("15:04:05 ")
|
||||
now = time.Now().Format("15:04:05")
|
||||
}
|
||||
if (flg & FlagPrefix) != 0 {
|
||||
log.WriteString(now)
|
||||
log.WriteString(prefix)
|
||||
logPrefix.WriteString(now)
|
||||
logPrefix.WriteByte(' ')
|
||||
logPrefix.WriteString(prefix)
|
||||
} else {
|
||||
log.WriteString(prefix)
|
||||
log.WriteString(now)
|
||||
logPrefix.WriteString(prefix)
|
||||
logPrefix.WriteByte(' ')
|
||||
logPrefix.WriteString(now)
|
||||
}
|
||||
|
||||
if (flg & FlagFunc) != 0 {
|
||||
c, _, _, ok := runtime.Caller(2)
|
||||
if ok {
|
||||
log.WriteString(runtime.FuncForPC(c).Name())
|
||||
log.WriteString(" ")
|
||||
logSuffix.WriteString(runtime.FuncForPC(c).Name())
|
||||
} else {
|
||||
log.WriteString("? ")
|
||||
logSuffix.WriteByte('?')
|
||||
}
|
||||
}
|
||||
|
||||
if (flg & FlagLongFile) != 0 {
|
||||
if logSuffix.Len() != 0 {
|
||||
logSuffix.WriteByte(' ')
|
||||
}
|
||||
_, p, l, ok := runtime.Caller(2)
|
||||
if ok {
|
||||
log.WriteString(fmt.Sprintf("%s:%d ", p, l))
|
||||
logSuffix.WriteString(fmt.Sprintf("%s:%d", p, l))
|
||||
} else {
|
||||
log.WriteString("?:? ")
|
||||
logSuffix.WriteString("?:?")
|
||||
}
|
||||
} else if (flg & FlagShortFile) != 0 {
|
||||
if logSuffix.Len() != 0 {
|
||||
logSuffix.WriteByte(' ')
|
||||
}
|
||||
_, p, l, ok := runtime.Caller(2)
|
||||
if ok {
|
||||
log.WriteString(fmt.Sprintf("%s:%d ", path.Base(p), l))
|
||||
logSuffix.WriteString(fmt.Sprintf("%s:%d", path.Base(p), l))
|
||||
} else {
|
||||
log.WriteString("?:? ")
|
||||
logSuffix.WriteString("?:?")
|
||||
}
|
||||
}
|
||||
|
||||
log.WriteString("| ")
|
||||
log.WriteString(fmt.Sprintf(format, values...))
|
||||
log.WriteString("\n")
|
||||
w.WriteString(log.String())
|
||||
if (flag & FlagSuffix) != 0 {
|
||||
logPrefix.WriteString(separatorStart)
|
||||
logPrefix.WriteString(fmt.Sprintf(format, values...))
|
||||
logPrefix.WriteString(separatorEnd)
|
||||
logPrefix.WriteString(logSuffix.String())
|
||||
logPrefix.WriteString(separatorEndEnd)
|
||||
} else {
|
||||
logPrefix.WriteByte(' ')
|
||||
logPrefix.WriteString(logSuffix.String())
|
||||
logPrefix.WriteString(separatorStart)
|
||||
logPrefix.WriteString(fmt.Sprintf(format, values...))
|
||||
}
|
||||
|
||||
logPrefix.WriteByte('\n')
|
||||
w.WriteString(logPrefix.String())
|
||||
}
|
||||
|
||||
func Unknown(format string, values ...any) {
|
||||
|
|
34
glog_test.go
34
glog_test.go
|
@ -23,5 +23,39 @@ func TestGlog(t *testing.T) {
|
|||
Info("test %s", "Info")
|
||||
Warning("test %s", "Warning")
|
||||
Error("test %s", "Error")
|
||||
fmt.Println()
|
||||
SetFlag(FlagStd | FlagShortFile)
|
||||
Unknown("test %s", "Unknown")
|
||||
Debug("test %s", "Debug")
|
||||
Trace("test %s", "Trace")
|
||||
Info("test %s", "Info")
|
||||
Warning("test %s", "Warning")
|
||||
Error("test %s", "Error")
|
||||
fmt.Println()
|
||||
SetFlag(FlagStd | FlagShortFile | FlagSuffix)
|
||||
Unknown("test %s", "Unknown")
|
||||
Debug("test %s", "Debug")
|
||||
Trace("test %s", "Trace")
|
||||
Info("test %s", "Info")
|
||||
Warning("test %s", "Warning")
|
||||
Error("test %s", "Error")
|
||||
fmt.Println()
|
||||
SetSeparatorStart(" : ")
|
||||
SetSeparatorEnd(" [ ")
|
||||
SetSeparatorEndEnd(" ]")
|
||||
Unknown("test %s", "Unknown")
|
||||
Debug("test %s", "Debug")
|
||||
Trace("test %s", "Trace")
|
||||
Info("test %s", "Info")
|
||||
Warning("test %s", "Warning")
|
||||
Error("test %s", "Error")
|
||||
fmt.Println()
|
||||
SetFlag(FlagAll ^ FlagSuffix)
|
||||
Unknown("test %s", "Unknown")
|
||||
Debug("test %s", "Debug")
|
||||
Trace("test %s", "Trace")
|
||||
Info("test %s", "Info")
|
||||
Warning("test %s", "Warning")
|
||||
Error("test %s", "Error")
|
||||
Fatal("test %s", "Fatal")
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue