Drop the fixed list of `knative/serving` components from logging. (#22)

This commit is contained in:
Matt Moore 2018-07-27 10:14:36 -07:00 committed by Google Prow Robot
parent 8b7b2d7cfb
commit 9d1975b29f
2 changed files with 14 additions and 11 deletions

View File

@ -96,14 +96,15 @@ type Config struct {
LoggingLevel map[string]zapcore.Level
}
// NewConfigFromMap creates a LoggingConfig from the supplied map
func NewConfigFromMap(data map[string]string) (*Config, error) {
// NewConfigFromMap creates a LoggingConfig from the supplied map,
// expecting the given list of components.
func NewConfigFromMap(data map[string]string, components ...string) (*Config, error) {
lc := &Config{}
if zlc, ok := data["zap-logger-config"]; ok {
lc.LoggingConfig = zlc
}
lc.LoggingLevel = make(map[string]zapcore.Level)
for _, component := range []string{"controller", "queueproxy", "webhook", "activator", "autoscaler"} {
for _, component := range components {
if ll, ok := data["loglevel."+component]; ok {
if len(ll) > 0 {
level, err := levelFromString(ll)
@ -117,9 +118,10 @@ func NewConfigFromMap(data map[string]string) (*Config, error) {
return lc, nil
}
// NewConfigFromConfigMap creates a LoggingConfig from the supplied ConfigMap
func NewConfigFromConfigMap(configMap *corev1.ConfigMap) (*Config, error) {
return NewConfigFromMap(configMap.Data)
// NewConfigFromConfigMap creates a LoggingConfig from the supplied ConfigMap,
// expecting the given list of components.
func NewConfigFromConfigMap(configMap *corev1.ConfigMap, components ...string) (*Config, error) {
return NewConfigFromMap(configMap.Data, components...)
}
func levelFromString(level string) (*zapcore.Level, error) {
@ -132,9 +134,10 @@ func levelFromString(level string) (*zapcore.Level, error) {
// UpdateLevelFromConfigMap returns a helper func that can be used to update the logging level
// when a config map is updated
func UpdateLevelFromConfigMap(logger *zap.SugaredLogger, atomicLevel zap.AtomicLevel, levelKey string) func(configMap *corev1.ConfigMap) {
func UpdateLevelFromConfigMap(logger *zap.SugaredLogger, atomicLevel zap.AtomicLevel,
levelKey string, components ...string) func(configMap *corev1.ConfigMap) {
return func(configMap *corev1.ConfigMap) {
loggingConfig, err := NewConfigFromConfigMap(configMap)
loggingConfig, err := NewConfigFromConfigMap(configMap, components...)
if err != nil {
logger.Error("Failed to parse the logging configmap. Previous config map will be used.", zap.Error(err))
return

View File

@ -191,7 +191,7 @@ func TestInvalidLevel(t *testing.T) {
"zap-logger-config": wantCfg,
"loglevel.queueproxy": "invalid",
},
})
}, "queueproxy")
if err == nil {
t.Errorf("Expected errors. got nothing")
}
@ -209,7 +209,7 @@ func getTestConfig() (*Config, string, string) {
"zap-logger-config": wantCfg,
"loglevel.queueproxy": wantLevel,
},
})
}, "queueproxy")
return c, wantCfg, wantLevel
}
@ -242,7 +242,7 @@ func TestUpdateLevelFromConfigMap(t *testing.T) {
{"debug", zapcore.DebugLevel},
}
u := UpdateLevelFromConfigMap(logger, atomicLevel, "controller")
u := UpdateLevelFromConfigMap(logger, atomicLevel, "controller", "controller")
for _, tt := range tests {
cm.Data["loglevel.controller"] = tt.setLevel
u(cm)