package log

import "github.com/Microsoft/hcsshim/internal/log"

Index

Variables

var (
	// L is the default, blank logging entry. WithField and co. all return a copy
	// of the original entry, so this will not leak fields between calls.
	//
	// Do NOT modify fields directly, as that will corrupt state for all users and
	// is not thread safe.
	// Instead, use `L.With*` or `L.Dup()`. Or `G(context.Background())`.
	L = logrus.NewEntry(logrus.StandardLogger())

	// G is an alias for GetEntry
	G = GetEntry

	// S is an alias for SetEntry
	S = SetEntry

	// U is an alias for UpdateContext
	U = UpdateContext
)
var (
	ErrUnknownType = errors.New("encoded object is of unknown type")
)

Functions

func Copy

Copy extracts the tracing Span and logging entry from the src Context, if they exist, and adds them to the dst Context.

This is useful to share tracing and logging between contexts, but not the cancellation. For example, if the src Context has been cancelled but cleanup operations triggered by the cancellation require a non-cancelled context to execute.

func GetEntry

func GetEntry(ctx context.Context) *logrus.Entry

GetEntry returns a `logrus.Entry` stored in the context, if one exists. Otherwise, it returns a default entry that points to the current context.

Note: if the a new entry is returned, it will reference the passed in context. However, existing contexts may be stored in parent contexts and additionally reference earlier contexts. Use `UpdateContext` to update the entry and context.

func IsScrubbingEnabled

func IsScrubbingEnabled() bool

IsScrubbingEnabled checks if scrubbing is enabled

func ScrubBridgeCreate

func ScrubBridgeCreate(b []byte) ([]byte, error)

ScrubBridgeCreate scrubs requests sent over the bridge of type internal/gcs/protocol.containerCreate wrapping an internal/hcsoci.linuxHostedSystem

func ScrubBridgeExecProcess

func ScrubBridgeExecProcess(b []byte) ([]byte, error)

ScrubBridgeExecProcess scrubs requests sent over the bridge of type internal/gcs/protocol.containerExecuteProcess

func ScrubProcessParameters

func ScrubProcessParameters(s string) (string, error)

ScrubProcessParameters scrubs HCS Create Process requests with config parameters of type internal/hcs/schema2.ScrubProcessParameters (aka hcsshema.ScrubProcessParameters)

func SetEntry

func SetEntry(ctx context.Context, fields logrus.Fields) (context.Context, *logrus.Entry)

SetEntry updates the log entry in the context with the provided fields, and returns both. It is equivalent to:

entry := GetEntry(ctx).WithFields(fields)
ctx = WithContext(ctx, entry)

See WithContext for more information.

func SetScrubbing

func SetScrubbing(enable bool)

SetScrubbing enables scrubbing

func UpdateContext

func UpdateContext(ctx context.Context) context.Context

UpdateContext extracts the log entry from the context, and, if the entry's context points to a parent's of the current context, ands the entry to the most recent context. It is equivalent to:

entry := GetEntry(ctx)
ctx = WithContext(ctx, entry)

This allows the entry to reference the most recent context and any new values (such as span contexts) added to it.

See WithContext for more information.

func WithContext

func WithContext(ctx context.Context, entry *logrus.Entry) (context.Context, *logrus.Entry)

WithContext returns a context that contains the provided log entry. The entry can be extracted with `GetEntry` (`G`)

The entry in the context is a copy of `entry` (generated by `entry.WithContext`)

Types

type Hook

type Hook struct{}

Hook serves to intercept and format `logrus.Entry`s before they are passed to the ETW hook.

The containerd shim discards the (formatted) logrus output, and outputs only via ETW. The Linux GCS outputs logrus entries over stdout, which is consumed by the shim and then re-output via the ETW hook.

func NewHook

func NewHook() *Hook

func (*Hook) Fire

func (h *Hook) Fire(e *logrus.Entry) (err error)

func (*Hook) Levels

func (h *Hook) Levels() []logrus.Level

Source Files

context.go hook.go scrub.go

Version
v0.10.0-rc.3
Published
Dec 12, 2022
Platform
js/wasm
Imports
10 packages
Last checked
6 minutes ago

Tools for package owners.