libatapp

package
v1.0.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 11, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func CloseAllLogWriters

func CloseAllLogWriters()

func ConvertLogLevel

func ConvertLogLevel(level string) slog.Level

func CreateLogHandlerWriter

func CreateLogHandlerWriter(out LogWriter) logHandlerWriter

func GetCaller

func GetCaller(skip int) uintptr

func LevelNameResolver

func LevelNameResolver(level slog.Level) string

func LogFormat

func LogFormat(format string, sb LogFormatBufferWriter, caller CallerInfo, customFormatP func(LogFormatBufferWriter, time.Time)) string

func LogInner

func LogInner(sysnow time.Time, logger *slog.Logger, pc uintptr, ctx context.Context, level slog.Level, msg string, args ...any)

func NewLogHandlerImpl

func NewLogHandlerImpl(cache *sync.Map, prefix string) *logHandlerImpl

Types

type CallerInfo

type CallerInfo struct {
	Now         time.Time
	LogLevel    slog.Level
	RotateIndex uint32
	Frame       *frameInfo
}

type DefaultGetTime

type DefaultGetTime struct{}

func (*DefaultGetTime) GetSysNow

func (d *DefaultGetTime) GetSysNow() time.Time

type GetTime

type GetTime interface {
	GetSysNow() time.Time
}

type LogAttr

type LogAttr interface {
	LogAttr() []slog.Attr
}

type LogBufferedRotatingWriter

type LogBufferedRotatingWriter struct {
	GetTime
	// contains filtered or unexported fields
}

func NewLogBufferedRotatingWriter

func NewLogBufferedRotatingWriter(getTime GetTime, fileName string, fileAlias string, maxSize uint64, retain uint32,
	flushInterval time.Duration, bufferSlotSize uint64) (*LogBufferedRotatingWriter, error)

NewLogBufferedRotatingWriter 创建新的日志 writer

func (*LogBufferedRotatingWriter) Close

func (w *LogBufferedRotatingWriter) Close()

Close 关闭打开的文件

func (*LogBufferedRotatingWriter) Flush

func (w *LogBufferedRotatingWriter) Flush() error

Flush 手动触发刷新缓冲区(非阻塞)

func (*LogBufferedRotatingWriter) Write

func (w *LogBufferedRotatingWriter) Write(p []byte) (int, error)

type LogFormatBufferWriter

type LogFormatBufferWriter interface {
	Write(p []byte) (int, error)
	WriteByte(c byte) error
	WriteString(s string) (int, error)
	String() string
}

type LogRingBuffer

type LogRingBuffer struct {
	// contains filtered or unexported fields
}

func NewLogRingBuffer

func NewLogRingBuffer(slotCount uint64) *LogRingBuffer

func (*LogRingBuffer) FlushThreshold

func (rb *LogRingBuffer) FlushThreshold() uint64

FlushThreshold 返回触发立即刷新的阈值

func (*LogRingBuffer) PendingCount

func (rb *LogRingBuffer) PendingCount() uint64

PendingCount 返回当前待处理的槽位数量

func (*LogRingBuffer) ReadAll

func (rb *LogRingBuffer) ReadAll() ([]*logBuffer, uint64)

ReadAll 读取所有可用数据(仅由单个消费者协程调用,无需CAS) 返回数据切片和丢失的日志数量

func (*LogRingBuffer) Write

func (rb *LogRingBuffer) Write(p []byte) (int, bool)

Write 写入数据到环形缓冲区(无锁) 返回写入的字节数和是否成功

type LogRingBufferSlot

type LogRingBufferSlot struct {
	// contains filtered or unexported fields
}

type LogStderrWriter

type LogStderrWriter struct {
	// contains filtered or unexported fields
}

func NewlogStderrWriter

func NewlogStderrWriter() *LogStderrWriter

func (*LogStderrWriter) Close

func (w *LogStderrWriter) Close()

func (*LogStderrWriter) Flush

func (w *LogStderrWriter) Flush() error

func (*LogStderrWriter) Write

func (w *LogStderrWriter) Write(p []byte) (n int, err error)

type LogStdoutWriter

type LogStdoutWriter struct {
	// contains filtered or unexported fields
}

func NewlogStdoutWriter

func NewlogStdoutWriter() *LogStdoutWriter

func (*LogStdoutWriter) Close

func (w *LogStdoutWriter) Close()

func (*LogStdoutWriter) Flush

func (w *LogStdoutWriter) Flush() error

func (*LogStdoutWriter) Write

func (w *LogStdoutWriter) Write(p []byte) (n int, err error)

type LogWriter

type LogWriter interface {
	io.Writer
	// 在Reload后切换日志时需要Close
	Close()
	// 某些带缓存的Writer 需要手动Flush
	Flush() error
}

type Logger

type Logger struct {
	GetTime
	// contains filtered or unexported fields
}

func NewLogger

func NewLogger(handler slog.Handler, getTime GetTime) *Logger

func (*Logger) Enabled

func (l *Logger) Enabled(ctx context.Context, level slog.Level) bool

func (*Logger) LogDebug

func (l *Logger) LogDebug(msg string, args ...any)

func (*Logger) LogError

func (l *Logger) LogError(msg string, args ...any)

func (*Logger) LogInfo

func (l *Logger) LogInfo(msg string, args ...any)

func (*Logger) LogInner

func (l *Logger) LogInner(sysnow time.Time, pc uintptr, ctx context.Context, level slog.Level, msg string, args ...any)

func (*Logger) LogWarn

func (l *Logger) LogWarn(msg string, args ...any)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL