You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

misc.go 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778
  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, level Level, format string, v ...any) {
  17. s.base.Log(skip+1, level, 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, TRACE, format, v...)
  27. }
  28. func (s *baseToLogger) Debug(format string, v ...any) {
  29. s.base.Log(1, DEBUG, format, v...)
  30. }
  31. func (s *baseToLogger) Info(format string, v ...any) {
  32. s.base.Log(1, INFO, format, v...)
  33. }
  34. func (s *baseToLogger) Warn(format string, v ...any) {
  35. s.base.Log(1, WARN, format, v...)
  36. }
  37. func (s *baseToLogger) Error(format string, v ...any) {
  38. s.base.Log(1, ERROR, format, v...)
  39. }
  40. func (s *baseToLogger) Critical(format string, v ...any) {
  41. s.base.Log(1, 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. }