)
const (
- LogLevelError = iota
+ LogLevelSilent = iota
+ LogLevelError
LogLevelInfo
LogLevelDebug
)
if level >= LogLevelInfo {
return output, output, ioutil.Discard
}
- return output, ioutil.Discard, ioutil.Discard
+ if level >= LogLevelError {
+ return output, ioutil.Discard, ioutil.Discard
+ }
+ return ioutil.Discard, ioutil.Discard, ioutil.Discard
}()
logger.Debug = log.New(logDebug,
return LogLevelInfo
case "error":
return LogLevelError
+ case "silent":
+ return LogLevelSilent
}
return LogLevelInfo
}()
env = append(env, fmt.Sprintf("%s=3", ENV_WG_TUN_FD))
env = append(env, fmt.Sprintf("%s=4", ENV_WG_UAPI_FD))
env = append(env, fmt.Sprintf("%s=1", ENV_WG_PROCESS_FOREGROUND))
+ files := [3]*os.File{}
+ if os.Getenv("LOG_LEVEL") != "" {
+ files[1] = os.Stdout
+ files[2] = os.Stderr
+ }
attr := &os.ProcAttr{
Files: []*os.File{
- nil, // stdin
- nil, // stdout
- nil, // stderr
+ files[0], // stdin
+ files[1], // stdout
+ files[2], // stderr
tun.File(),
fileUAPI,
},