From e268d18b7ad709aa83d7bb97d18d7cbc3d409d09 Mon Sep 17 00:00:00 2001 From: Adam Reese Date: Mon, 15 May 2017 09:36:07 -0700 Subject: [PATCH] feat(logger): add a global default Logger. --- pkg/kube/client.go | 2 +- pkg/logger/doc.go | 18 ++++++++++++++++++ pkg/logger/logger.go | 14 ++++++-------- pkg/storage/storage.go | 2 +- pkg/tiller/release_server.go | 2 +- 5 files changed, 27 insertions(+), 11 deletions(-) create mode 100644 pkg/logger/doc.go diff --git a/pkg/kube/client.go b/pkg/kube/client.go index 7e8a40416..3c8c0c5b8 100644 --- a/pkg/kube/client.go +++ b/pkg/kube/client.go @@ -70,7 +70,7 @@ func New(config clientcmd.ClientConfig) *Client { return &Client{ Factory: cmdutil.NewFactory(config), SchemaCacheDir: clientcmd.RecommendedSchemaFile, - Logger: logger.NewNopLogger(), + Logger: logger.DefaultLogger, } } diff --git a/pkg/logger/doc.go b/pkg/logger/doc.go new file mode 100644 index 000000000..6f5ccdc33 --- /dev/null +++ b/pkg/logger/doc.go @@ -0,0 +1,18 @@ +/* +Copyright 2016 The Kubernetes Authors All rights reserved. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// Package logger provides an abstract interface for logging. +package logger // import "k8s.io/helm/pkg/logger" diff --git a/pkg/logger/logger.go b/pkg/logger/logger.go index e0e452bee..f373d0407 100644 --- a/pkg/logger/logger.go +++ b/pkg/logger/logger.go @@ -14,14 +14,14 @@ See the License for the specific language governing permissions and limitations under the License. */ -package logger +package logger // import "k8s.io/helm/pkg/logger" // Logger provides a generic way of handling logging. type Logger interface { Printf(format string, args ...interface{}) } -// Func is an adaptor to allow the use of ordinary functions as logggers. +// Func is an adaptor to allow the use of ordinary functions as loggers. type Func func(string, ...interface{}) // Printf implements Logger. @@ -29,10 +29,8 @@ func (l Func) Printf(format string, args ...interface{}) { l(format, args...) } -type nopLogger struct{} +// DefaultLogger is a globally set Logger used when initializing clients. +var DefaultLogger Logger = NewNopLogger() -// NewNopLogger creates a nopLogger. -func NewNopLogger() Logger { return nopLogger{} } - -// Printf implements Logger. -func (nopLogger) Printf(format string, args ...interface{}) {} +// NewNopLogger returns a Logger that does nothing. +func NewNopLogger() Func { return func(_ string, _ ...interface{}) {} } diff --git a/pkg/storage/storage.go b/pkg/storage/storage.go index 0121d50c5..fe4cf1428 100644 --- a/pkg/storage/storage.go +++ b/pkg/storage/storage.go @@ -221,6 +221,6 @@ func Init(d driver.Driver) *Storage { Driver: d, releaseLocks: make(map[string]*sync.Mutex), releaseLocksLock: &sync.Mutex{}, - Logger: logger.NewNopLogger(), + Logger: logger.DefaultLogger, } } diff --git a/pkg/tiller/release_server.go b/pkg/tiller/release_server.go index 414e790b1..b8beb7e65 100644 --- a/pkg/tiller/release_server.go +++ b/pkg/tiller/release_server.go @@ -102,7 +102,7 @@ func NewReleaseServer(env *environment.Environment, clientset internalclientset. env: env, clientset: clientset, ReleaseModule: releaseModule, - Logger: logger.NewNopLogger(), + Logger: logger.DefaultLogger, } }