logger

package
v1.11.0 Latest Latest
Warning

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

Go to latest
Published: Apr 13, 2016 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package logger defines interfaces that logger drivers implement to log messages.

The other half of a logger driver is the implementation of the factory, which holds the contextual instance information that allows multiple loggers of the same type to perform different actions, such as logging to different locations.

Index

Constants

View Source
const (
	// TimeFormat is the time format used for timestamps sent to log readers.
	TimeFormat = jsonlog.RFC3339NanoFixed
)

Variables

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

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

Functions

func RegisterLogDriver added in v1.7.0

func RegisterLogDriver(name string, c Creator) error

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

func RegisterLogOptValidator added in v1.8.0

func RegisterLogOptValidator(name string, l LogOptValidator) error

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

func ValidateLogOpts added in v1.8.0

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 Context added in v1.7.0

type Context 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
}

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

func (*Context) Command added in v1.8.0

func (ctx *Context) Command() string

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

func (*Context) ExtraAttributes added in v1.9.0

func (ctx *Context) 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 (*Context) FullID added in v1.9.0

func (ctx *Context) FullID() string

FullID is an alias of ContainerID.

func (*Context) Hostname added in v1.8.0

func (ctx *Context) Hostname() (string, error)

Hostname returns the hostname from the underlying OS.

func (*Context) ID added in v1.9.0

func (ctx *Context) ID() string

ID Returns the Container ID shortened to 12 characters.

func (*Context) ImageFullID added in v1.9.0

func (ctx *Context) ImageFullID() string

ImageFullID is an alias of ContainerImageID.

func (*Context) ImageID added in v1.9.0

func (ctx *Context) ImageID() string

ImageID returns the ContainerImageID shortened to 12 characters.

func (*Context) ImageName added in v1.9.0

func (ctx *Context) ImageName() string

ImageName is an alias of ContainerImageName

func (*Context) Name added in v1.9.0

func (ctx *Context) Name() string

Name returns the ContainerName without a preceding '/'.

type Copier

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

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

func NewCopier

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

NewCopier creates a new Copier

func (*Copier) Close added in v1.10.0

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 added in v1.7.0

type Creator func(Context) (Logger, error)

Creator builds a logging driver instance with given context.

func GetLogDriver added in v1.7.0

func GetLogDriver(name string) (Creator, error)

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

type LogOptValidator added in v1.8.0

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

LogOptValidator checks the options specific to the underlying logging implementation.

type LogReader added in v1.8.0

type LogReader interface {
	// Read logs from underlying logging backend
	ReadLogs(ReadConfig) *LogWatcher
}

LogReader is the interface for reading log messages for loggers that support reading.

type LogWatcher added in v1.8.0

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 added in v1.8.0

func NewLogWatcher() *LogWatcher

NewLogWatcher returns a new LogWatcher.

func (*LogWatcher) Close added in v1.8.0

func (w *LogWatcher) Close()

Close notifies the underlying log reader to stop.

func (*LogWatcher) WatchClose added in v1.8.0

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 {
	ContainerID string
	Line        []byte
	Source      string
	Timestamp   time.Time
}

Message is datastructure that represents record from some container.

type ReadConfig added in v1.8.0

type ReadConfig struct {
	Since  time.Time
	Tail   int
	Follow bool
}

ReadConfig is the configuration passed into ReadLogs.

Directories

Path Synopsis
Package awslogs provides the logdriver for forwarding container logs to Amazon CloudWatch Logs
Package awslogs provides the logdriver for forwarding container logs to Amazon CloudWatch Logs
Package etwlogs provides a log driver for forwarding container logs as ETW events.(ETW stands for Event Tracing for Windows) A client can then create an ETW listener to listen for events that are sent by the ETW provider that we register, using the provider's GUID "a3693192-9ed6-46d2-a981-f8226c8363bd".
Package etwlogs provides a log driver for forwarding container logs as ETW events.(ETW stands for Event Tracing for Windows) A client can then create an ETW listener to listen for events that are sent by the ETW provider that we register, using the provider's GUID "a3693192-9ed6-46d2-a981-f8226c8363bd".
Package fluentd provides the log driver for forwarding server logs to fluentd endpoints.
Package fluentd provides the log driver for forwarding server logs to fluentd endpoints.
Package gelf provides the log driver for forwarding server logs to endpoints that support the Graylog Extended Log Format.
Package gelf provides the log driver for forwarding server logs to endpoints that support the Graylog Extended Log Format.
Package journald provides the log driver for forwarding server logs to endpoints that receive the systemd format.
Package journald provides the log driver for forwarding server logs to endpoints that receive the systemd format.
Package jsonfilelog provides the default Logger implementation for Docker logging.
Package jsonfilelog provides the default Logger implementation for Docker logging.
Package splunk provides the log driver for forwarding server logs to Splunk HTTP Event Collector endpoint.
Package splunk provides the log driver for forwarding server logs to Splunk HTTP Event Collector endpoint.
Package syslog provides the logdriver for forwarding server logs to syslog endpoints.
Package syslog provides the logdriver for forwarding server logs to syslog endpoints.

Jump to

Keyboard shortcuts

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