Merge pull request #1003 from hpcng/SeperateStreams

separate writer for wwlog.Info
This commit is contained in:
Jonathon Anderson
2024-01-15 23:29:14 -07:00
committed by GitHub
2 changed files with 39 additions and 4 deletions

View File

@@ -125,6 +125,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Support importing containers with symlinked `/bin/sh` #797
- Don't panic on malformed passwd #527
- Update iPXE building script
- Send Info, Recv, Send, and Out messages to stdout; and others to stderr
## [4.4.0] 2023-01-18

View File

@@ -36,9 +36,11 @@ var (
ERROR = SetLevelName(40, "ERROR")
SECWARN = SetLevelName(31, "SECWARN")
WARN = SetLevelName(30, "WARN")
ERROUT = SetLevelName(29, "ERROUT")
SEND = SetLevelName(27, "SEND")
RECV = SetLevelName(26, "RECV")
SERV = SetLevelName(25, "SERV")
OUT = SetLevelName(22, "OUT")
SECINFO = SetLevelName(21, "SECINFO")
INFO = SetLevelName(20, "INFO")
SECVERBOSE = SetLevelName(16, "SECVERBOSE")
@@ -52,6 +54,7 @@ var (
levelNames = []string{"NOTSET"}
logLevel = INFO
logErr io.Writer = os.Stderr
logOut io.Writer = os.Stdout
logFormatter LogFormatter = DefaultFormatter
)
@@ -153,11 +156,30 @@ func GetLogLevel() int {
Set the log output writer
By default they are set to output writer
*/
func SetLogWriter(err io.Writer) {
logErr = err
func SetLogWriter(newOut io.Writer) {
logErr = newOut
logOut = newOut
}
func GetLogWriter() io.Writer {
/*
Set the log ofr info only
*/
func SetLogWriterInfo(newOut io.Writer) {
logOut = newOut
}
/*
Set the log ofr info only
*/
func SetLogWriterErr(newOut io.Writer) {
logOut = newOut
}
func GetLogWriterInfo() io.Writer {
return logOut
}
func GetLogWriterErr() io.Writer {
return logErr
}
@@ -196,8 +218,12 @@ func LogCaller(level int, skip int, err error, message string, a ...interface{})
}
message = logFormatter(logLevel, &rec)
if level == INFO || level == RECV || level == SEND || level == OUT {
fmt.Fprint(logOut, message)
} else {
fmt.Fprint(logErr, message)
fmt.Fprint(logErr, message)
}
}
}
@@ -249,6 +275,10 @@ func Info(message string, a ...interface{}) {
LogCaller(INFO, 1, nil, message, a...)
}
func Output(message string, a ...interface{}) {
LogCaller(OUT, 1, nil, message, a...)
}
func InfoExc(err error, message string, a ...interface{}) {
LogCaller(INFO, 1, err, message, a...)
}
@@ -281,6 +311,10 @@ func SecWarn(message string, a ...interface{}) {
LogCaller(SECWARN, 1, nil, message, a...)
}
func ErrOut(message string, a ...interface{}) {
LogCaller(ERROUT, 1, nil, message, a...)
}
func Error(message string, a ...interface{}) {
LogCaller(ERROR, 1, nil, message, a...)
}