package logs
import "k8s.io/component-base/logs"
Package logs contains support for logging options, flags and setup. Commands must explicitly enable command line flags. They no longer get added automatically when importing this package.
Index ¶
- Constants
- func AddFlags(fs *pflag.FlagSet, opts ...Option)
- func AddGoFlags(fs *flag.FlagSet, opts ...Option)
- func BindLoggingFlags(c *config.LoggingConfiguration, fs *pflag.FlagSet)
- func FlushLogs()
- func GlogSetter(val string) (string, error)
- func InitLogs()
- func NewLogger(prefix string) *log.Logger
- func UnsupportedLoggingFlags(normalizeFunc func(f *pflag.FlagSet, name string) pflag.NormalizedName) []*pflag.Flag
- func ValidateLoggingConfiguration(c *config.LoggingConfiguration, fldPath *field.Path) field.ErrorList
- type KlogWriter
- type Option
- type Options
Constants ¶
const ( DefaultLogFormat = "text" JSONLogFormat = "json" )
Supported klog formats
Functions ¶
func AddFlags ¶
AddFlags registers this package's flags on arbitrary FlagSets. This includes the klog flags, with the original underscore as separator between. If commands want hyphens as separators, they can set k8s.io/component-base/cli/flag/WordSepNormalizeFunc as normalization function on the flag set before calling AddFlags.
May be called more than once.
func AddGoFlags ¶
AddGoFlags is a variant of AddFlags for traditional Go flag.FlagSet. Commands should use pflag whenever possible for the sake of consistency. Cases where this function is needed include tests (they have to set up flags in flag.CommandLine) and commands that for historic reasons use Go flag.Parse and cannot change to pflag because it would break their command line interface.
func BindLoggingFlags ¶
func BindLoggingFlags(c *config.LoggingConfiguration, fs *pflag.FlagSet)
BindLoggingFlags binds the Options struct fields to a flagset.
Programs using LoggingConfiguration must use SkipLoggingConfigurationFlags when calling AddFlags to avoid the duplicate registration of flags.
func FlushLogs ¶
func FlushLogs()
FlushLogs flushes logs immediately. This should be called at the end of the main function via defer to ensure that all pending log messages are printed before exiting the program.
func GlogSetter ¶
GlogSetter is a setter to set glog level.
func InitLogs ¶
func InitLogs()
InitLogs initializes logs the way we want for Kubernetes. It should be called after parsing flags. If called before that, it will use the default log settings.
func NewLogger ¶
NewLogger creates a new log.Logger which sends logs to klog.Info.
func UnsupportedLoggingFlags ¶
func UnsupportedLoggingFlags(normalizeFunc func(f *pflag.FlagSet, name string) pflag.NormalizedName) []*pflag.Flag
UnsupportedLoggingFlags lists unsupported logging flags. The normalize function is optional.
func ValidateLoggingConfiguration ¶
func ValidateLoggingConfiguration(c *config.LoggingConfiguration, fldPath *field.Path) field.ErrorList
Types ¶
type KlogWriter ¶
type KlogWriter struct{}
KlogWriter serves as a bridge between the standard log package and the glog package.
func (KlogWriter) Write ¶
func (writer KlogWriter) Write(data []byte) (n int, err error)
Write implements the io.Writer interface.
type Option ¶
type Option func(*addFlagsOptions)
func SkipLoggingConfigurationFlags ¶
func SkipLoggingConfigurationFlags() Option
SkipLoggingConfigurationFlags must be used as option for AddFlags when the program also uses a LoggingConfiguration struct for configuring logging. Then only flags not covered by that get added.
type Options ¶
type Options struct { Config config.LoggingConfiguration }
Options has klog format parameters
func NewOptions ¶
func NewOptions() *Options
NewOptions return new klog options
func (*Options) AddFlags ¶
AddFlags add logging-format flag.
Programs using LoggingConfiguration must use SkipLoggingConfigurationFlags when calling AddFlags to avoid the duplicate registration of flags.
func (*Options) ValidateAndApply ¶
ValidateAndApply combines validation and application of the logging configuration. This should be invoked as early as possible because then the rest of the program startup (including validation of other options) will already run with the final logging configuration.
Source Files ¶
config.go logs.go options.go validate.go
Directories ¶
Path | Synopsis |
---|---|
logs/datapol | Package datapol contains functions to determine if objects contain sensitive data to e.g. |
logs/example | |
logs/example/cmd | |
logs/json | |
logs/json/register | |
logs/kube-log-runner | |
logs/logreduction | |
logs/registry | |
logs/sanitization | |
logs/testinit | Package testinit adds logging flags to a Ginkgo or Go test program during initialization, something that the logs package itself no longer does. |
- Version
- v0.23.14
- Published
- Nov 10, 2022
- Platform
- js/wasm
- Imports
- 17 packages
- Last checked
- 15 seconds ago –
Tools for package owners.