gitech

Форк
0
/
misc.go 
78 строк · 1.7 Кб
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
}
79

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.