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