aboutsummaryrefslogtreecommitdiffstats
path: root/pkg/log/log.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/log/log.go')
-rw-r--r--pkg/log/log.go131
1 files changed, 131 insertions, 0 deletions
diff --git a/pkg/log/log.go b/pkg/log/log.go
new file mode 100644
index 0000000..2a8b997
--- /dev/null
+++ b/pkg/log/log.go
@@ -0,0 +1,131 @@
+// -
+// ========================LICENSE_START=================================
+// Copyright (C) 2024: Deutsche Telecom
+//
+// 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.
+// ========================LICENSE_END===================================
+//
+
+package log
+
+import (
+ "github.com/sirupsen/logrus"
+ "gopkg.in/natefinch/lumberjack.v2"
+ "io"
+ "os"
+ "policy-opa-pdp/cfg"
+ "policy-opa-pdp/consts"
+)
+
+type Logger struct {
+ *logrus.Logger
+}
+
+var (
+ Log *Logger
+)
+
+func SetOutput(w io.Writer) {
+ Log.SetOutput(w)
+}
+
+func init() {
+ Log = InitLogger(consts.LogFilePath, consts.LogMaxSize, consts.LogMaxBackups, cfg.LogLevel)
+}
+
+func InitLogger(logFilePath string, logMaxSize int, logMaxBackups int, logLevel string) *Logger {
+ log := logrus.New()
+
+ log.SetLevel(logrus.DebugLevel)
+ log.SetOutput(os.Stdout)
+
+ logLevelParsed, err := logrus.ParseLevel(logLevel)
+ if err != nil {
+ log.Warn(err)
+ }
+ log.SetLevel(logLevelParsed)
+
+ logRotation := &lumberjack.Logger{
+ Filename: consts.LogFilePath,
+ MaxSize: consts.LogMaxSize,
+ MaxBackups: consts.LogMaxBackups,
+ }
+ multiWriter := io.MultiWriter(os.Stdout, logRotation)
+ log.SetOutput(multiWriter)
+
+ log.SetFormatter(&logrus.TextFormatter{
+ ForceColors: true,
+ DisableColors: false,
+ FullTimestamp: true,
+ TimestampFormat: "2006-01-02T15:04:05.0000-07:00",
+ })
+
+ log.Debugf("logger initialised Filepath = %s, Logsize(MB) = %d, Backups = %d, Loglevel = %s", logFilePath, logMaxSize, logMaxBackups, logLevel)
+ return &Logger{log}
+}
+
+func ParseLevel(level string) (logrus.Level, error) {
+ return logrus.ParseLevel(level)
+}
+
+func SetLevel(level logrus.Level) {
+ Log.SetLevel(level)
+}
+
+func Error(args ...interface{}) {
+ Log.Error(args...)
+}
+
+func Info(args ...interface{}) {
+ Log.Info(args...)
+}
+
+func Debug(args ...interface{}) {
+ Log.Debug(args...)
+}
+
+func Warn(args ...interface{}) {
+ Log.Warn(args...)
+}
+
+func Panic(args ...interface{}) {
+ Log.Panic(args...)
+}
+
+func Trace(args ...interface{}) {
+ Log.Trace(args...)
+}
+
+func Errorf(msg string, args ...interface{}) {
+ Log.Errorf(msg, args...)
+}
+
+func Infof(msg string, args ...interface{}) {
+ Log.Infof(msg, args...)
+}
+
+func Debugf(msg string, args ...interface{}) {
+ Log.Debugf(msg, args...)
+}
+
+func Warnf(msg string, args ...interface{}) {
+ Log.Warnf(msg, args...)
+}
+
+func Panicf(msg string, args ...interface{}) {
+ Log.Panicf(msg, args...)
+}
+
+func Tracef(msg string, args ...interface{}) {
+ Log.Tracef(msg, args...)
+}