logknob

package
v0.0.0-...-97a3edb Latest Latest
Warning

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

Go to latest
Published: Feb 15, 2024 License: BSD-3-Clause Imports: 5 Imported by: 0

Documentation

Overview

Package logknob provides a helpful wrapper that allows enabling logging based on either an envknob or other methods of enablement.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type LogKnob

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

LogKnob allows configuring verbose logging, with multiple ways to enable. It supports enabling logging via envknob, via atomic boolean (for use in e.g. c2n log level changes), and via capabilities from a NetMap (so users can enable logging via the ACL JSON).

func NewLogKnob

func NewLogKnob(env string, cap tailcfg.NodeCapability) *LogKnob

NewLogKnob creates a new LogKnob, with the provided environment variable name and/or NetMap capability.

func (*LogKnob) Do

func (lk *LogKnob) Do(log logger.Logf, format string, args ...any)

Do will call log with the provided format and arguments if any of the configured methods for enabling logging are true.

func (*LogKnob) Set

func (lk *LogKnob) Set(v bool)

Set will cause logs to be printed when called with Set(true). When called with Set(false), logs will not be printed due to an earlier call of Set(true), but may be printed due to either the envknob and/or capability of this LogKnob.

func (*LogKnob) UpdateFromNetMap

func (lk *LogKnob) UpdateFromNetMap(nm NetMap)

UpdateFromNetMap will enable logging if the SelfNode in the provided NetMap contains the capability provided for this LogKnob.

type NetMap

type NetMap interface {
	SelfCapabilities() views.Slice[tailcfg.NodeCapability]
}

NetMap is an interface for the parts of netmap.NetworkMap that we care about; we use this rather than a concrete type to avoid a circular dependency.

Jump to

Keyboard shortcuts

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