testsupport

package
v0.0.3 Latest Latest
Warning

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

Go to latest
Published: Sep 7, 2026 License: Apache-2.0 Imports: 21 Imported by: 0

Documentation

Overview

Package testsupport 提供跨集成测试包复用的日志测试夹具。

Index

Constants

View Source
const (
	EnvConfigPath = log.EnvConfigPath

	ConfigSourceExplicit = log.ConfigSourceExplicit
	ConfigSourceEnv      = log.ConfigSourceEnv
	ConfigSourceBoot     = log.ConfigSourceBoot
	ConfigSourceFile     = log.ConfigSourceFile
	ConfigSourceDefault  = log.ConfigSourceDefault

	LevelAll   = log.LevelAll
	LevelTrace = log.LevelTrace
	LevelFatal = log.LevelFatal
	LevelOff   = log.LevelOff

	FilterNeutral = log.FilterNeutral
	FilterAccept  = log.FilterAccept
	FilterDeny    = log.FilterDeny

	MapFilterAnd = log.MapFilterAnd
	MapFilterOr  = log.MapFilterOr

	AsyncOverflowBlock        = log.AsyncOverflowBlock
	AsyncOverflowDrop         = log.AsyncOverflowDrop
	AsyncOverflowDropDebug    = log.AsyncOverflowDropDebug
	AsyncOverflowSyncFallback = log.AsyncOverflowSyncFallback

	AsyncWaitBlock = log.AsyncWaitBlock
	AsyncWaitSleep = log.AsyncWaitSleep
	AsyncWaitYield = log.AsyncWaitYield
	AsyncWaitSpin  = log.AsyncWaitSpin

	RollingFileIndexNoMax = log.RollingFileIndexNoMax
	RollingFileIndexMax   = log.RollingFileIndexMax
	RollingFileIndexMin   = log.RollingFileIndexMin

	StructuredDataIDAttrKey   = log.StructuredDataIDAttrKey
	StructuredDataTypeAttrKey = log.StructuredDataTypeAttrKey

	DefaultThreadName = internallogevent.DefaultThreadName
)

Variables

View Source
var (
	ConfigureDefault              = log.ConfigureDefault
	ContextAttrs                  = log.ContextAttrs
	DefaultOptions                = log.DefaultOptions
	DefaultPluginRegistry         = log.DefaultPluginRegistry
	LevelName                     = log.LevelName
	LoadOptions                   = log.LoadOptions
	NewAppenderRef                = log.NewAppenderRef
	NewAsyncAppender              = log.NewAsyncAppender
	NewAttrFilter                 = log.NewAttrFilter
	NewBurstFilter                = log.NewBurstFilter
	NewConsoleAppender            = log.NewConsoleAppender
	NewConfigReloader             = log.NewConfigReloader
	NewConfiguredLoggerContext    = log.NewConfiguredLoggerContext
	NewDynamicThresholdFilter     = log.NewDynamicThresholdFilter
	NewFileAppender               = log.NewFileAppender
	NewFilteredAppender           = log.NewFilteredAppender
	NewHandler                    = log.NewHandler
	NewJSONAppender               = log.NewJSONAppender
	NewJSONFileAppender           = log.NewJSONFileAppender
	NewJSONLayout                 = log.NewJSONLayout
	NewJSONTemplateLayout         = log.NewJSONTemplateLayout
	NewJSONTemplateLayoutFromFile = log.NewJSONTemplateLayoutFromFile
	NewLevelRegistry              = log.NewLevelRegistry
	NewLogger                     = log.NewLogger
	NewLoggerContext              = log.NewLoggerContext
	NewLookupResolver             = log.NewLookupResolver
	NewMapFilter                  = log.NewMapFilter
	NewMapMessage                 = log.NewMapMessage
	NewMarker                     = log.NewMarker
	NewMarkerFilter               = log.NewMarkerFilter
	NewNativeLogger               = log.NewNativeLogger
	NewNoMarkerFilter             = log.NewNoMarkerFilter
	NewParameterizedMessage       = log.NewParameterizedMessage
	NewPatternLayout              = log.NewPatternLayout
	NewPatternLayoutWithOptions   = log.NewPatternLayoutWithOptions
	NewPluginRegistry             = log.NewPluginRegistry
	NewPluginSet                  = log.NewPluginSet
	NewRegexFilter                = log.NewRegexFilter
	NewRollingFileAppender        = log.NewRollingFileAppender
	NewScriptFilter               = log.NewScriptFilter
	NewSimpleMessage              = log.NewSimpleMessage
	NewStatusLogger               = log.NewStatusLogger
	NewStringMatchFilter          = log.NewStringMatchFilter
	NewStructuredDataFilter       = log.NewStructuredDataFilter
	NewStructuredDataMessage      = log.NewStructuredDataMessage
	NewThreadContextStackFilter   = log.NewThreadContextStackFilter
	NewThresholdFilter            = log.NewThresholdFilter
	NewThrowable                  = log.NewThrowable
	NewThrowableFilter            = log.NewThrowableFilter
	NewThrowableWithStack         = log.NewThrowableWithStack
	NewTimeFilter                 = log.NewTimeFilter
	NewTimeFilterInLocation       = log.NewTimeFilterInLocation
	ThrowableAttr                 = log.ThrowableAttr

	NewConfigured                    = log.NewConfigured
	NewConfiguredHandler             = log.NewConfiguredHandler
	ParseByteSize                    = log.ParseByteSize
	ParseLevel                       = log.ParseLevel
	ParseMonitorInterval             = log.ParseMonitorInterval
	ParseRollingInterval             = log.ParseRollingInterval
	RegisterLayout                   = log.RegisterLayout
	RegisterLevel                    = log.RegisterLevel
	WithAppenderRefFilters           = log.WithAppenderRefFilters
	WithAppenderRefLevel             = log.WithAppenderRefLevel
	WithAppenderRefLocation          = log.WithAppenderRefLocation
	WithAsyncBatchSize               = log.WithAsyncBatchSize
	WithAsyncCloseAppenders          = log.WithAsyncCloseAppenders
	WithAsyncErrorHandler            = log.WithAsyncErrorHandler
	WithAsyncOverflowStrategy        = log.WithAsyncOverflowStrategy
	WithAsyncQueueSize               = log.WithAsyncQueueSize
	WithAsyncWaitOptions             = log.WithAsyncWaitOptions
	WithAsyncWaitStrategy            = log.WithAsyncWaitStrategy
	WithBootPropertyResolver         = log.WithBootPropertyResolver
	WithConfigEnvKey                 = log.WithConfigEnvKey
	WithConfigLookups                = log.WithConfigLookups
	WithConfigPath                   = log.WithConfigPath
	WithConfigData                   = log.WithConfigData
	WithConfigWorkingDir             = log.WithConfigWorkingDir
	WithConsoleLayout                = log.WithConsoleLayout
	WithConsoleName                  = log.WithConsoleName
	WithConsoleWriter                = log.WithConsoleWriter
	WithFileBufferSize               = log.WithFileBufferSize
	WithFileCreateOnDemand           = log.WithFileCreateOnDemand
	WithFileFlushOnWrite             = log.WithFileFlushOnWrite
	WithFileLayout                   = log.WithFileLayout
	WithFilterOnMatch                = log.WithFilterOnMatch
	WithFilterOnMismatch             = log.WithFilterOnMismatch
	WithJSONAppenderBufferSize       = log.WithJSONAppenderBufferSize
	WithJSONAppenderName             = log.WithJSONAppenderName
	WithJSONAppenderWriter           = log.WithJSONAppenderWriter
	WithJSONTemplateLayoutOptions    = log.WithJSONTemplateLayoutOptions
	WithJSONTemplateResolverRegistry = log.WithJSONTemplateResolverRegistry
	WithLoggerCaller                 = log.WithLoggerCaller
	WithLoggerContextStatus          = log.WithLoggerContextStatus
	WithLoggerMessageFactory         = log.WithLoggerMessageFactory
	WithMapFilterOnMatch             = log.WithMapFilterOnMatch
	WithMapFilterOnMismatch          = log.WithMapFilterOnMismatch
	WithMapFilterOperator            = log.WithMapFilterOperator
	WithPluginAppender               = log.WithPluginAppender
	WithPluginJSONTemplateResolver   = log.WithPluginJSONTemplateResolver
	WithPluginLayout                 = log.WithPluginLayout
	WithPluginLookup                 = log.WithPluginLookup
	WithPluginRegistry               = log.WithPluginRegistry
	WithRegexOnMatch                 = log.WithRegexOnMatch
	WithRegexOnMismatch              = log.WithRegexOnMismatch
	WithRolloverOnStartup            = log.WithRolloverOnStartup
	WithRollingActionQueueSize       = log.WithRollingActionQueueSize
	WithRollingAsyncActions          = log.WithRollingAsyncActions
	WithRollingCronSchedule          = log.WithRollingCronSchedule
	WithRollingDeleteActions         = log.WithRollingDeleteActions
	WithRollingDirectWrite           = log.WithRollingDirectWrite
	WithRollingFileAppend            = log.WithRollingFileAppend
	WithRollingFileBufferSize        = log.WithRollingFileBufferSize
	WithRollingFileCreateOnDemand    = log.WithRollingFileCreateOnDemand
	WithRollingFileIndexMode         = log.WithRollingFileIndexMode
	WithRollingFileLayout            = log.WithRollingFileLayout
	WithRollingFilePattern           = log.WithRollingFilePattern
	WithRollingGzip                  = log.WithRollingGzip
	WithRollingInterval              = log.WithRollingInterval
	WithRollingMaxBackups            = log.WithRollingMaxBackups
	WithRollingMaxSize               = log.WithRollingMaxSize
	WithRollingTotalSizeCap          = log.WithRollingTotalSizeCap
	WithRollingCleanHistoryOnStart   = log.WithRollingCleanHistoryOnStart
	WithRoutingAttrKey               = log.WithRoutingAttrKey
	WithRoutingDefault               = log.WithRoutingDefault
	WithRoutingKeyFunc               = log.WithRoutingKeyFunc
	WithScriptFilterOnMatch          = log.WithScriptFilterOnMatch
	WithScriptFilterOnMismatch       = log.WithScriptFilterOnMismatch
	WithStatusBufferSize             = log.WithStatusBufferSize
	WithStatusLevel                  = log.WithStatusLevel
	WithStatusWriter                 = log.WithStatusWriter
	WithContextAttrs                 = log.WithContextAttrs
	WithContextStack                 = log.WithContextStack
	WithMarker                       = log.WithMarker
	WithPluginFilter                 = log.WithPluginFilter
	WithThreadName                   = log.WithThreadName
	NewFailoverAppender              = log.NewFailoverAppender
	NewRoutingAppender               = log.NewRoutingAppender
	NewRewriteAppender               = log.NewRewriteAppender
)

Functions

func AppendJSONEvent

func AppendJSONEvent(
	buf *bytes.Buffer,
	when time.Time,
	level slog.Level,
	logger string,
	message string,
	attrs []slog.Attr,
)

func AssertCompleteJSONContentMessages

func AssertCompleteJSONContentMessages(
	t *testing.T,
	content string,
	want ...string,
) []map[string]any

AssertCompleteJSONContentMessages 校验 JSON 内容并返回解码结果。

func AssertCompleteJSONMessages

func AssertCompleteJSONMessages(t *testing.T, path string, want ...string)

AssertCompleteJSONMessages 校验完整 JSON 日志中的消息顺序。

func CallerPC

func CallerPC(skip int) uintptr

func CloseAppenderList

func CloseAppenderList(appenders []Appender) error

func FixedTestTime

func FixedTestTime() time.Time

FixedTestTime 返回测试使用的固定时间。

func IsAsyncAppender

func IsAsyncAppender(appender Appender) bool

func LevelPointer

func LevelPointer(level slog.Level) *slog.Level

LevelPointer 返回日志级别指针。

func MarkerPointer

func MarkerPointer(marker log.Marker) *log.Marker

MarkerPointer 返回标记指针。

func ReadGzipFile

func ReadGzipFile(t *testing.T, path string) string

ReadGzipFile 读取 gzip 测试文件。

func ReadTextFile

func ReadTextFile(t *testing.T, path string) string

ReadTextFile 读取测试文本文件。

func WriteConfig

func WriteConfig(t *testing.T, path string, content string)

WriteConfig 写入规范化的测试配置。

Types

type Appender

type Appender = log.Appender

type AppenderBuildConfig

type AppenderBuildConfig = log.AppenderBuildConfig

type AppenderRef

type AppenderRef = log.AppenderRef

type AsyncAppender

type AsyncAppender = log.AsyncAppender

type AsyncErrorHandlerFunc

type AsyncErrorHandlerFunc = log.AsyncErrorHandlerFunc

type AsyncLoggerOptions

type AsyncLoggerOptions = log.AsyncLoggerOptions

type AsyncWaitOptions

type AsyncWaitOptions = log.AsyncWaitOptions

type CSVLayout

type CSVLayout = log.CSVLayout

type ConfigLoadOption

type ConfigLoadOption = log.ConfigLoadOption

type ConfigResult

type ConfigResult = log.ConfigResult

type ConfigSource

type ConfigSource = log.ConfigSource

type ConstantJSONResolver

type ConstantJSONResolver string

ConstantJSONResolver 输出固定 JSON 字符串。

func (ConstantJSONResolver) AppendJSON

func (r ConstantJSONResolver) AppendJSON(buf *bytes.Buffer, _ Event)

AppendJSON 写入固定值。

type Event

type Event = log.Event

func BenchmarkEvent

func BenchmarkEvent() Event

BenchmarkEvent 创建稳定的基准事件。

func NewEvent

func NewEvent(
	ctx context.Context,
	logger string,
	handlerAttrs []slog.Attr,
	groups []string,
	record slog.Record,
) Event

func TestEvent

func TestEvent(message string, when time.Time) Event

TestEvent 创建具有稳定字段的日志测试事件。

type FailingAppender

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

FailingAppender 始终返回失败,用于验证降级路径。

func NewFailingAppender

func NewFailingAppender(name string) FailingAppender

NewFailingAppender 创建失败型测试 Appender。

func (FailingAppender) Append

Append 返回固定错误。

func (FailingAppender) Close

func (FailingAppender) Close() error

Close 完成无资源关闭。

func (FailingAppender) Name

func (a FailingAppender) Name() string

Name 返回 Appender 名称。

type FileAppender

type FileAppender = log.FileAppender

type FileConfig

type FileConfig struct {
	*configfile.Config
}

func DecodePropertiesConfig

func DecodePropertiesConfig(reader io.Reader, lookups *log.LookupResolver) (*FileConfig, error)

func DecodeStructuredConfig

func DecodeStructuredConfig(reader io.Reader, lookups *log.LookupResolver) (*FileConfig, error)

func DecodeXMLConfig

func DecodeXMLConfig(reader io.Reader, lookups *log.LookupResolver) (*FileConfig, error)

func (*FileConfig) BuildFilters

func (c *FileConfig) BuildFilters(registry *PluginRegistry) (map[string]Filter, error)

type Filter

type Filter = log.Filter

type FilterBuildConfig

type FilterBuildConfig = log.FilterBuildConfig

type FilterDecision

type FilterDecision = log.FilterDecision

type FilterFunc

type FilterFunc = log.FilterFunc

type FilteredAppender

type FilteredAppender = log.FilteredAppender

type GELFLayout

type GELFLayout = log.GELFLayout

type HTMLLayout

type HTMLLayout = log.HTMLLayout

type JSONLayout

type JSONLayout = log.JSONLayout

type JSONTemplateResolver

type JSONTemplateResolver = log.JSONTemplateResolver

type JSONTemplateResolverBuildConfig

type JSONTemplateResolverBuildConfig = log.JSONTemplateResolverBuildConfig

type Layout

type Layout = log.Layout

func BuildLayout

func BuildLayout(config LayoutConfig, registry *PluginRegistry) (Layout, error)

type LayoutBuildConfig

type LayoutBuildConfig = log.LayoutBuildConfig

type LayoutConfig

type LayoutConfig = configfile.LayoutConfig

type LayoutOptions

type LayoutOptions = log.LayoutOptions

type LoggerConfiguration

type LoggerConfiguration = log.LoggerConfiguration

type LoggerRule

type LoggerRule = log.LoggerRule

type Marker

type Marker = log.Marker

type Message

type Message = log.Message

type MessageFactoryFunc

type MessageFactoryFunc = log.MessageFactoryFunc

type Options

type Options = log.Options

type PatternLayout

type PatternLayout = log.PatternLayout

type PluginRegistrarFunc

type PluginRegistrarFunc = log.PluginRegistrarFunc

type PluginRegistry

type PluginRegistry = log.PluginRegistry

type PropertyMap

type PropertyMap = log.PropertyMap

type RFC5424Layout

type RFC5424Layout = log.RFC5424Layout

type RecordingAppender

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

RecordingAppender 以并发安全方式记录测试事件。

func NewRecordingAppender

func NewRecordingAppender(name string) *RecordingAppender

NewRecordingAppender 创建记录型测试 Appender。

func (*RecordingAppender) Append

func (a *RecordingAppender) Append(ctx context.Context, event Event) error

Append 记录一条事件。

func (*RecordingAppender) Close

func (a *RecordingAppender) Close() error

Close 记录关闭次数。

func (*RecordingAppender) CloseCount

func (a *RecordingAppender) CloseCount() int

CloseCount 返回关闭次数。

func (*RecordingAppender) Contains

func (a *RecordingAppender) Contains(message string) bool

Contains 判断是否记录了指定消息。

func (*RecordingAppender) Events

func (a *RecordingAppender) Events() []Event

Events 返回事件快照。

func (*RecordingAppender) Name

func (a *RecordingAppender) Name() string

Name 返回 Appender 名称。

type RollingDeleteAction

type RollingDeleteAction = log.RollingDeleteAction

type RollingFileAppender

type RollingFileAppender = log.RollingFileAppender

type RollingFileIndexMode

type RollingFileIndexMode = log.RollingFileIndexMode

type RollingFileOption

type RollingFileOption = log.RollingFileOption

func WithRollingClock

func WithRollingClock(clock func() time.Time) RollingFileOption

type RootLogger

type RootLogger = log.RootLogger

type ScriptEvaluatorFunc

type ScriptEvaluatorFunc = log.ScriptEvaluatorFunc

type TextLayout

type TextLayout = log.TextLayout

type Throwable

type Throwable = log.Throwable

type XMLLayout

type XMLLayout = log.XMLLayout

type YAMLLayout

type YAMLLayout = log.YAMLLayout

Jump to

Keyboard shortcuts

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