gitea

Зеркало из https://github.com/go-gitea/gitea
Форк
0
/
logger.go 
50 строк · 1.7 Кб
1
// Copyright 2023 The Gitea Authors. All rights reserved.
2
// SPDX-License-Identifier: MIT
3

4
// Package log provides logging capabilities for Gitea.
5
// Concepts:
6
//
7
// * Logger: a Logger provides logging functions and dispatches log events to all its writers
8
//
9
// * EventWriter: written log Event to a destination (eg: file, console)
10
//   - EventWriterBase: the base struct of a writer, it contains common fields and functions for all writers
11
//   - WriterType: the type name of a writer, eg: console, file
12
//   - WriterName: aka Mode Name in document, the name of a writer instance, it's usually defined by the config file.
13
//     It is called "mode name" because old code use MODE as config key, to keep compatibility, keep this concept.
14
//
15
// * WriterMode: the common options for all writers, eg: log level.
16
//   - WriterConsoleOption and others: the specified options for a writer, eg: file path, remote address.
17
//
18
// Call graph:
19
// -> log.Info()
20
// -> LoggerImpl.Log()
21
// -> LoggerImpl.SendLogEvent, then the event goes into writer's goroutines
22
// -> EventWriter.Run() handles the events
23
package log
24

25
// BaseLogger provides the basic logging functions
26
type BaseLogger interface {
27
	Log(skip int, level Level, format string, v ...any)
28
	GetLevel() Level
29
}
30

31
// LevelLogger provides level-related logging functions
32
type LevelLogger interface {
33
	LevelEnabled(level Level) bool
34

35
	Trace(format string, v ...any)
36
	Debug(format string, v ...any)
37
	Info(format string, v ...any)
38
	Warn(format string, v ...any)
39
	Error(format string, v ...any)
40
	Critical(format string, v ...any)
41
}
42

43
type Logger interface {
44
	BaseLogger
45
	LevelLogger
46
}
47

48
type LogStringer interface { //nolint:revive
49
	LogString() string
50
}
51

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

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

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

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