logger

package
v5.0.4-release+incompa... Latest Latest
Warning

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

Go to latest
Published: Mar 5, 2019 License: LGPL-3.0 Imports: 17 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var ErrNeglectedContainer = fmt.Errorf("Neglected container")

ErrNeglectedContainer not define logger name

View Source
var ErrReadLogsNotSupported = errors.New("configured logging driver does not support reading")

ErrReadLogsNotSupported is returned when the logger does not support reading logs.

View Source
var RFC3339NanoFixed = "2006-01-02T15:04:05.000000000Z07:00"

RFC3339NanoFixed time format

Functions

func PutMessage

func PutMessage(msg *Message)

PutMessage puts the specified message back n the message pool. The message fields are reset before putting into the pool.

func RegisterLogDriver

func RegisterLogDriver(name string, c Creator) error

RegisterLogDriver registers the given logging driver builder with given logging driver name.

func RegisterLogOptValidator

func RegisterLogOptValidator(name string, l LogOptValidator) error

RegisterLogOptValidator registers the logging option validator with the given logging driver name.

func ValidateLogOpts

func ValidateLogOpts(name string, cfg map[string]string) error

ValidateLogOpts checks the options for the given log driver. The options supported are specific to the LogDriver implementation.

Types

type ContainerEvent

type ContainerEvent struct {
	Action    string
	Container types.ContainerJSON
}

ContainerEvent container event

type ContainerLog

type ContainerLog struct {
	types.ContainerJSON
	LogCopier *Copier
	LogDriver Logger
	// contains filtered or unexported fields
}

ContainerLog container log struct

func (*ContainerLog) StartLogger

func (container *ContainerLog) StartLogger() (Logger, error)

StartLogger starts a new logger driver for the container.

func (*ContainerLog) Stop

func (container *ContainerLog) Stop()

Stop stop copy container log

type ContainerLogManage

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

ContainerLogManage conatiner log manage

func CreatContainerLogManage

func CreatContainerLogManage(conf *option.Conf) *ContainerLogManage

CreatContainerLogManage create a container log manage

func (*ContainerLogManage) Start

func (c *ContainerLogManage) Start() error

Start start

func (*ContainerLogManage) Stop

func (c *ContainerLogManage) Stop()

Stop stop all logger

type Copier

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

Copier can copy logs from specified sources to Logger and attach Timestamp. Writes are concurrent, so you need implement some sync in your logger.

func NewCopier

func NewCopier(srcs map[string]io.Reader, dst Logger) *Copier

NewCopier creates a new Copier

func (*Copier) Close

func (c *Copier) Close()

Close closes the copier

func (*Copier) Run

func (c *Copier) Run()

Run starts logs copying

func (*Copier) Wait

func (c *Copier) Wait()

Wait waits until all copying is done

type Creator

type Creator func(Info) (Logger, error)

Creator builds a logging driver instance with given context.

func GetLogDriver

func GetLogDriver(name string) (Creator, error)

GetLogDriver provides the logging driver builder for a logging driver name.

type Info

type Info struct {
	Config              map[string]string
	ContainerID         string
	ContainerName       string
	ContainerEntrypoint string
	ContainerArgs       []string
	ContainerImageID    string
	ContainerImageName  string
	ContainerCreated    time.Time
	ContainerEnv        []string
	ContainerLabels     map[string]string
	LogPath             string
	DaemonName          string
}

Info provides enough information for a logging driver to do its function.

func (*Info) Command

func (info *Info) Command() string

Command returns the command that the container being logged was started with. The Entrypoint is prepended to the container arguments.

func (*Info) ExtraAttributes

func (info *Info) ExtraAttributes(keyMod func(string) string) map[string]string

ExtraAttributes returns the user-defined extra attributes (labels, environment variables) in key-value format. This can be used by log drivers that support metadata to add more context to a log.

func (*Info) FullID

func (info *Info) FullID() string

FullID is an alias of ContainerID.

func (*Info) Hostname

func (info *Info) Hostname() (string, error)

Hostname returns the hostname from the underlying OS.

func (*Info) ID

func (info *Info) ID() string

ID Returns the Container ID shortened to 12 characters.

func (*Info) ImageFullID

func (info *Info) ImageFullID() string

ImageFullID is an alias of ContainerImageID.

func (*Info) ImageID

func (info *Info) ImageID() string

ImageID returns the ContainerImageID shortened to 12 characters.

func (*Info) ImageName

func (info *Info) ImageName() string

ImageName is an alias of ContainerImageName

func (*Info) Name

func (info *Info) Name() string

Name returns the ContainerName without a preceding '/'.

type LogAttributes

type LogAttributes map[string]string

LogAttributes is used to hold the extra attributes available in the log message Primarily used for converting the map type to string and sorting.

type LogOptValidator

type LogOptValidator func(cfg map[string]string) error

LogOptValidator checks the options specific to the underlying logging implementation.

type LogWatcher

type LogWatcher struct {
	// For sending log messages to a reader.
	Msg chan *Message
	// For sending error messages that occur while while reading logs.
	Err chan error
	// contains filtered or unexported fields
}

LogWatcher is used when consuming logs read from the LogReader interface.

func NewLogWatcher

func NewLogWatcher() *LogWatcher

NewLogWatcher returns a new LogWatcher.

func (*LogWatcher) Close

func (w *LogWatcher) Close()

Close notifies the underlying log reader to stop.

func (*LogWatcher) WatchClose

func (w *LogWatcher) WatchClose() <-chan struct{}

WatchClose returns a channel receiver that receives notification when the watcher has been closed. This should only be called from one goroutine.

type Logger

type Logger interface {
	Log(*Message) error
	Name() string
	Close() error
}

Logger is the interface for docker logging drivers.

type Message

type Message struct {
	Line      []byte
	Source    string
	Timestamp time.Time
	Attrs     LogAttributes
	Partial   bool
}

Message is datastructure that represents piece of output produced by some container. The Line member is a slice of an array whose contents can be changed after a log driver's Log() method returns. Any changes made to this struct must also be updated in the `reset` function

func NewMessage

func NewMessage() *Message

NewMessage returns a new message from the message sync.Pool

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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