Allow InitLogging to be called twice

This makes it a bit easier to embed k3s into another go program
This commit is contained in:
Darren Shepherd 2020-04-27 09:42:52 -07:00
parent 0efe2af1a7
commit 8cc9efdf7c

View File

@ -6,6 +6,7 @@ import (
"io"
"os"
"strconv"
"sync"
"time"
"github.com/docker/docker/pkg/reexec"
@ -43,19 +44,26 @@ var (
Usage: "(logging) Log to standard error as well as file (if set)",
Destination: &LogConfig.AlsoLogToStderr,
}
logSetupOnce sync.Once
)
func InitLogging() error {
if LogConfig.LogFile != "" && os.Getenv("_K3S_LOG_REEXEC_") == "" {
return runWithLogging()
}
var rErr error
logSetupOnce.Do(func() {
if LogConfig.LogFile != "" && os.Getenv("_K3S_LOG_REEXEC_") == "" {
rErr = runWithLogging()
return
}
if err := checkUnixTimestamp(); err != nil {
return err
}
if err := checkUnixTimestamp(); err != nil {
rErr = err
return
}
setupLogging()
return nil
setupLogging()
})
return rErr
}
func checkUnixTimestamp() error {