init.go 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. // Copyright 2025 BackendServerTemplate Authors. All rights reserved.
  2. // Use of this source code is governed by a MIT-style
  3. // license that can be found in the LICENSE file.
  4. package internal
  5. import (
  6. "fmt"
  7. "github.com/SongZihuan/BackendServerTemplate/src/logger/loglevel"
  8. "github.com/SongZihuan/BackendServerTemplate/src/logger/write/wrapwriter"
  9. "github.com/SongZihuan/BackendServerTemplate/src/utils/osutils"
  10. "io"
  11. "os"
  12. )
  13. func InitLogger(level loglevel.LoggerLevel, logTag bool, realPanic bool, warnWriter, errWriter io.Writer) error {
  14. logLevel, ok := levelMap[level]
  15. if !ok {
  16. return fmt.Errorf("invalid log level: %s", level)
  17. }
  18. if warnWriter == nil {
  19. warnWriter = wrapwriter.WrapToWriter(os.Stdout)
  20. }
  21. if errWriter == nil {
  22. errWriter = wrapwriter.WrapToWriter(os.Stderr)
  23. }
  24. logger := &Logger{
  25. level: level,
  26. logLevel: logLevel,
  27. logTag: logTag,
  28. warnWriter: warnWriter,
  29. errWriter: errWriter,
  30. args0: osutils.GetArgs0(),
  31. args0Name: osutils.GetArgs0Name(),
  32. realPanic: realPanic,
  33. }
  34. GlobalLogger = logger
  35. return nil
  36. }
  37. func IsReady() bool {
  38. return GlobalLogger != nil
  39. }
  40. func CloseLogger() {
  41. }