envknob/logknob: add package for configurable logging

A LogKnob allows enabling logs with an envknob, netmap capability, and
manually, and calling a logging function when logs are enabled.

Signed-off-by: Andrew Dunham <andrew@du.nham.ca>
Change-Id: Id66c608d4e488bfd4eaa5e867a8d9289686748be
This commit is contained in:
Andrew Dunham
2023-03-15 09:24:24 -04:00
parent 3b39ca9017
commit 8ed4fd1dbc
3 changed files with 197 additions and 0 deletions

View File

@@ -125,6 +125,17 @@ func (nm *NetworkMap) MagicDNSSuffix() string {
return name
}
// SelfCapabilities returns SelfNode.Capabilities if nm and nm.SelfNode are
// non-nil. This is a method so we can use it in envknob/logknob without a
// circular dependency.
func (nm *NetworkMap) SelfCapabilities() []string {
if nm == nil || nm.SelfNode == nil {
return nil
}
return nm.SelfNode.Capabilities
}
func (nm *NetworkMap) String() string {
return nm.Concise()
}