2 * ============LICENSE_START=======================================================
3 * oom-certservice-k8s-external-provider
4 * ================================================================================
5 * Copyright (C) 2020 Nokia. All rights reserved.
6 * ================================================================================
7 * Licensed under the Apache License, Version 2.0 (the "License");
8 * you may not use this file except in compliance with the License.
9 * You may obtain a copy of the License at
11 * http://www.apache.org/licenses/LICENSE-2.0
13 * Unless required by applicable law or agreed to in writing, software
14 * distributed under the License is distributed on an "AS IS" BASIS,
15 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16 * See the License for the specific language governing permissions and
17 * limitations under the License.
18 * ============LICENSE_END=========================================================
29 "github.com/go-logr/logr"
30 "go.uber.org/zap/zapcore"
31 "github.com/go-logr/zapr"
36 WARNING = int(zapcore.WarnLevel) * -1
37 INFO = int(zapcore.InfoLevel) * -1
38 DEBUG = int(zapcore.DebugLevel) * -1
46 var configFileName = "default"
49 func SetConfigFileName(newName string) {
50 configFileName = newName
53 func SetLogLevel(level string) {
57 func GetLogger() Logger {
60 if err := json.Unmarshal(getConfig(), &cfg); err != nil {
63 logger, err := cfg.Build()
68 leveledLogger := Logger{
69 Log: zapr.NewLogger(logger),
74 func GetLoggerWithValues(keysAndValues ...interface{}) Logger {
75 leveledLogger := GetLogger()
76 leveledLogger.Log = leveledLogger.Log.WithValues(keysAndValues...)
80 func GetLoggerWithName(name string) Logger {
81 leveledLogger := GetLogger()
82 leveledLogger.Log = leveledLogger.Log.WithName(name)
86 func (logger *Logger) Error(err error, message string, keysAndValues ...interface{}) {
87 logger.Log.Error(err, message, keysAndValues...)
90 func (logger *Logger) Warning(message string, keysAndValues ...interface{}) {
91 logger.log(message, WARNING, keysAndValues...)
94 func (logger *Logger) Info(message string, keysAndValues ...interface{}) {
95 logger.log(message, INFO, keysAndValues...)
98 func (logger *Logger) Debug(message string, keysAndValues ...interface{}) {
99 logger.log(message, DEBUG, keysAndValues...)
102 func (logger *Logger) log(message string, lvl int, keysAndValues ...interface{}) {
103 logger.Log.V(lvl).Info(message, keysAndValues...)
106 func getDefaultConfig() []byte {
107 return []byte(fmt.Sprintf(`{
109 "encoding": "console",
110 "outputPaths": ["stdout"],
112 "timeKey": "timeKey",
113 "messageKey": "message",
116 "levelEncoder": "capital",
117 "timeEncoder": "iso8601"
122 func getConfig() []byte {
123 var config = []byte{}
124 if configFileName == "default" {
125 config = getDefaultConfig()
127 config = readFile(configFileName)
132 func readFile(filename string) []byte {
133 certRequest, err := ioutil.ReadFile(filename)