gitea源码

misc.go 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. // Copyright 2023 The Gitea Authors. All rights reserved.
  2. // SPDX-License-Identifier: MIT
  3. package log
  4. import (
  5. "io"
  6. )
  7. type baseToLogger struct {
  8. base BaseLogger
  9. }
  10. // BaseLoggerToGeneralLogger wraps a BaseLogger (which only has Log() function) to a Logger (which has Info() function)
  11. func BaseLoggerToGeneralLogger(b BaseLogger) Logger {
  12. l := &baseToLogger{base: b}
  13. return l
  14. }
  15. var _ Logger = (*baseToLogger)(nil)
  16. func (s *baseToLogger) Log(skip int, event *Event, format string, v ...any) {
  17. s.base.Log(skip+1, event, format, v...)
  18. }
  19. func (s *baseToLogger) GetLevel() Level {
  20. return s.base.GetLevel()
  21. }
  22. func (s *baseToLogger) LevelEnabled(level Level) bool {
  23. return s.base.GetLevel() <= level
  24. }
  25. func (s *baseToLogger) Trace(format string, v ...any) {
  26. s.base.Log(1, &Event{Level: TRACE}, format, v...)
  27. }
  28. func (s *baseToLogger) Debug(format string, v ...any) {
  29. s.base.Log(1, &Event{Level: DEBUG}, format, v...)
  30. }
  31. func (s *baseToLogger) Info(format string, v ...any) {
  32. s.base.Log(1, &Event{Level: INFO}, format, v...)
  33. }
  34. func (s *baseToLogger) Warn(format string, v ...any) {
  35. s.base.Log(1, &Event{Level: WARN}, format, v...)
  36. }
  37. func (s *baseToLogger) Error(format string, v ...any) {
  38. s.base.Log(1, &Event{Level: ERROR}, format, v...)
  39. }
  40. func (s *baseToLogger) Critical(format string, v ...any) {
  41. s.base.Log(1, &Event{Level: CRITICAL}, format, v...)
  42. }
  43. type PrintfLogger struct {
  44. Logf func(format string, args ...any)
  45. }
  46. func (p *PrintfLogger) Printf(format string, args ...any) {
  47. p.Logf(format, args...)
  48. }
  49. type loggerToWriter struct {
  50. logf func(format string, args ...any)
  51. }
  52. func (p *loggerToWriter) Write(bs []byte) (int, error) {
  53. p.logf("%s", string(bs))
  54. return len(bs), nil
  55. }
  56. // LoggerToWriter wraps a log function to an io.Writer
  57. func LoggerToWriter(logf func(format string, args ...any)) io.Writer {
  58. return &loggerToWriter{logf: logf}
  59. }