mirror of
https://github.com/hanzoai/forge.git
synced 2026-10-30 15:00:39 +00:00
Source files keep their SPDX-License-Identifier and Hanzo copyright line; the Gitea, Gogs and LFS Test Server copyrights they used to repeat now live once in NOTICE, alongside LICENSE. The header lint accepts any copyright line above the SPDX line, so it no longer demands an upstream one. Co-authored-by: Hanzo Dev <[email protected]>
51 lines
1.7 KiB
Go
51 lines
1.7 KiB
Go
// Copyright 2026 Hanzo AI, Inc. All rights reserved.
|
|
// SPDX-License-Identifier: MIT
|
|
|
|
// Package log provides logging capabilities for the forge.
|
|
// 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, event *Event, 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 // export stutter
|
|
LogString() string
|
|
}
|