b44a46ed2f
Replaces the flat key-value logging scheme with component-based structured logging via go-mana-component. Each layer (pool, worker, connection) builds its own component identity and derives a *slog.Logger from a caller-supplied slog.Handler. - Delete logging/ package (logging.go, logging_test.go) - Strip LoggingEnabled and LogLevel from ConnectionConfig, PoolConfig, WorkerConfig; remove associated option funcs - Change NewConnection and NewConnectionFromSocket to accept ctx and slog.Handler instead of *slog.Logger; constructors build component identity via MustNew/MustExtend internally - Change WorkerFactory, NewWorker, connect, and RunDialer to carry slog.Handler; remove PoolPlugin.Handler - Change NewPool to establish pool component identity via MustNew; remove pool_id field, PoolPlugin.ID, and ErrInvalidPoolID - Fix data race in MockSlogHandler: WithAttrs now shares parent mutex pointer rather than allocating a new one per child - Run go fix
32 lines
836 B
Go
32 lines
836 B
Go
package honeybee
|
|
|
|
import "errors"
|
|
import "fmt"
|
|
|
|
var (
|
|
// Config errors
|
|
InvalidKeepaliveTimeout = errors.New("keepalive timeout cannot be negative")
|
|
InvalidReconnectDelay = errors.New("reconnect delay cannot be negative")
|
|
InvalidBufferSize = errors.New("buffer size must be greater than zero")
|
|
|
|
// Pool errors
|
|
ErrPoolClosed = errors.New("pool is closed")
|
|
ErrPeerNotFound = errors.New("peer not found")
|
|
ErrPeerExists = errors.New("peer already exists")
|
|
|
|
// Worker errors
|
|
ErrConnectionUnavailable = errors.New("connection unavailable")
|
|
)
|
|
|
|
func NewConfigError(err error) error {
|
|
return fmt.Errorf("configuration error: %w", err)
|
|
}
|
|
|
|
func NewPoolError(err error) error {
|
|
return fmt.Errorf("pool error: %w", err)
|
|
}
|
|
|
|
func NewWorkerError(id string, err error) error {
|
|
return fmt.Errorf("worker %q error: %w", id, err)
|
|
}
|