- // Copyright 2023 The Gitea Authors. All rights reserved.
- // SPDX-License-Identifier: MIT
-
- // Package log provides logging capabilities for Gitea.
- // Concepts:
- //
- // * Logger: a Logger provides logging functions and dispatches log events to all its writers
- //
- // * EventWriter: written log Event to a destination (eg: file, console)
- // - EventWriterBase: the base struct of a writer, it contains common fields and functions for all writers
- // - WriterType: the type name of a writer, eg: console, file
- // - WriterName: aka Mode Name in document, the name of a writer instance, it's usually defined by the config file.
- // It is called "mode name" because old code use MODE as config key, to keep compatibility, keep this concept.
- //
- // * WriterMode: the common options for all writers, eg: log level.
- // - WriterConsoleOption and others: the specified options for a writer, eg: file path, remote address.
- //
- // Call graph:
- // -> log.Info()
- // -> LoggerImpl.Log()
- // -> LoggerImpl.SendLogEvent, then the event goes into writer's goroutines
- // -> EventWriter.Run() handles the events
- package log
-
- // BaseLogger provides the basic logging functions
- type BaseLogger interface {
- Log(skip int, level Level, format string, v ...any)
- GetLevel() Level
- }
-
- // LevelLogger provides level-related logging functions
- type LevelLogger interface {
- LevelEnabled(level Level) bool
-
- Trace(format string, v ...any)
- Debug(format string, v ...any)
- Info(format string, v ...any)
- Warn(format string, v ...any)
- Error(format string, v ...any)
- Critical(format string, v ...any)
- }
-
- type Logger interface {
- BaseLogger
- LevelLogger
- }
-
- type LogStringer interface { //nolint:revive
- LogString() string
- }
|