add all files from Hong

This commit is contained in:
zhangsz
2025-06-30 09:23:28 +08:00
parent ceb1fe2640
commit 9b7d32fbd9
69 changed files with 7280 additions and 0 deletions

46
logger/logger.go Normal file
View File

@@ -0,0 +1,46 @@
// Copyright 2018-present the CoreDHCP Authors. All rights reserved
// This source code is licensed under the MIT license found in the
// LICENSE file in the root directory of this source tree.
package logger
import (
"io"
"sync"
log_prefixed "github.com/chappjc/logrus-prefix"
"github.com/rifflock/lfshook"
"github.com/sirupsen/logrus"
)
var (
globalLogger *logrus.Logger
getLoggerMutex sync.Mutex
)
// GetLogger returns a configured logger instance
func GetLogger(prefix string) *logrus.Entry {
if prefix == "" {
prefix = "<no prefix>"
}
if globalLogger == nil {
getLoggerMutex.Lock()
defer getLoggerMutex.Unlock()
logger := logrus.New()
logger.SetFormatter(&log_prefixed.TextFormatter{
FullTimestamp: true,
})
globalLogger = logger
}
return globalLogger.WithField("prefix", prefix)
}
// WithFile logs to the specified file in addition to the existing output.
func WithFile(log *logrus.Entry, logfile string) {
log.Logger.AddHook(lfshook.NewHook(logfile, &logrus.TextFormatter{}))
}
// WithNoStdOutErr disables logging to stdout/stderr.
func WithNoStdOutErr(log *logrus.Entry) {
log.Logger.SetOutput(io.Discard)
}