diff --git a/cmd/cephfs/main.go b/cmd/cephfs/main.go index 3f7e5694f..907246f8e 100644 --- a/cmd/cephfs/main.go +++ b/cmd/cephfs/main.go @@ -26,13 +26,6 @@ import ( "k8s.io/klog" ) -func init() { - if err := flag.Set("logtostderr", "true"); err != nil { - klog.Errorf("failed to set logtostderr flag: %v", err) - os.Exit(1) - } -} - var ( endpoint = flag.String("endpoint", "unix://tmp/csi.sock", "CSI endpoint") driverName = flag.String("drivername", "csi-cephfsplugin", "name of the driver") @@ -42,7 +35,7 @@ var ( ) func main() { - flag.Parse() + util.InitLogging() if err := createPersistentStorage(path.Join(cephfs.PluginFolder, "controller")); err != nil { klog.Errorf("failed to create persistent storage for controller: %v", err) diff --git a/cmd/rbd/main.go b/cmd/rbd/main.go index 5dd239fa9..cd30bef68 100644 --- a/cmd/rbd/main.go +++ b/cmd/rbd/main.go @@ -26,13 +26,6 @@ import ( "k8s.io/klog" ) -func init() { - if err := flag.Set("logtostderr", "true"); err != nil { - klog.Errorf("failed to set logtostderr flag: %v", err) - os.Exit(1) - } -} - var ( endpoint = flag.String("endpoint", "unix://tmp/csi.sock", "CSI endpoint") driverName = flag.String("drivername", "csi-rbdplugin", "name of the driver") @@ -42,7 +35,7 @@ var ( ) func main() { - flag.Parse() + util.InitLogging() if err := createPersistentStorage(path.Join(rbd.PluginFolder, "controller")); err != nil { klog.Errorf("failed to create persistent storage for controller %v", err) diff --git a/pkg/util/log.go b/pkg/util/log.go new file mode 100644 index 000000000..3d500aaeb --- /dev/null +++ b/pkg/util/log.go @@ -0,0 +1,45 @@ +/* +Copyright 2018 The Kubernetes Authors. + +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 util + +import ( + "flag" + "os" + + "k8s.io/klog" +) + +// InitLogging initializes klog alongside glog +// XXX: This is just a temporary solution till all deps move to klog +func InitLogging() { + if err := flag.Set("logtostderr", "true"); err != nil { + klog.Errorf("failed to set logtostderr flag: %v", err) + os.Exit(1) + } + + flag.Parse() + + klogFlags := flag.NewFlagSet("klog", flag.ExitOnError) + klog.InitFlags(klogFlags) + + // Sync klog flags with glog + flag.CommandLine.VisitAll(func(f1 *flag.Flag) { + if f2 := klogFlags.Lookup(f1.Name); f2 != nil { + f2.Value.Set(f1.Value.String()) // nolint: errcheck, gosec + } + }) +}