cc-metric-collector/internal/ccLogger/cclogger.go

114 lines
2.3 KiB
Go
Raw Normal View History

2022-01-25 16:40:02 +01:00
package cclogger
import (
"fmt"
"log"
2022-01-26 17:09:20 +01:00
"os"
"runtime"
2022-01-25 16:40:02 +01:00
)
var (
2022-01-26 17:09:20 +01:00
globalDebug = false
stdout = os.Stdout
stderr = os.Stderr
debugLog *log.Logger = nil
infoLog *log.Logger = nil
errorLog *log.Logger = nil
warnLog *log.Logger = nil
defaultLog *log.Logger = nil
2022-01-25 16:40:02 +01:00
)
func initLogger() {
2022-01-26 17:09:20 +01:00
if debugLog == nil {
debugLog = log.New(stderr, "DEBUG ", log.LstdFlags)
}
if infoLog == nil {
infoLog = log.New(stdout, "INFO ", log.LstdFlags)
}
if errorLog == nil {
errorLog = log.New(stderr, "ERROR ", log.LstdFlags)
}
if warnLog == nil {
warnLog = log.New(stderr, "WARN ", log.LstdFlags)
}
if defaultLog == nil {
defaultLog = log.New(stdout, "", log.LstdFlags)
}
2022-01-25 16:40:02 +01:00
}
2022-01-26 17:09:20 +01:00
func Print(e ...interface{}) {
initLogger()
defaultLog.Print(e)
2022-01-25 16:40:02 +01:00
}
2022-01-26 17:09:20 +01:00
func ComponentPrint(component string, e ...interface{}) {
initLogger()
defaultLog.Print(fmt.Sprintf("[%s] ", component), e)
2022-01-25 16:40:02 +01:00
}
2022-01-26 17:09:20 +01:00
func Info(e ...interface{}) {
initLogger()
infoLog.Print(e)
2022-01-25 16:40:02 +01:00
}
2022-01-26 17:09:20 +01:00
func ComponentInfo(component string, e ...interface{}) {
initLogger()
infoLog.Print(fmt.Sprintf("[%s] ", component), e)
2022-01-25 16:40:02 +01:00
}
2022-01-26 17:09:20 +01:00
func Debug(e ...interface{}) {
initLogger()
if globalDebug == true {
debugLog.Print(e)
}
2022-01-25 16:40:02 +01:00
}
2022-01-26 17:09:20 +01:00
func ComponentDebug(component string, e ...interface{}) {
initLogger()
if globalDebug == true && debugLog != nil {
//CCComponentPrint(debugLog, component, e)
debugLog.Print(fmt.Sprintf("[%s] ", component), e)
}
2022-01-25 16:40:02 +01:00
}
2022-01-26 17:09:20 +01:00
func Error(e ...interface{}) {
initLogger()
_, fn, line, _ := runtime.Caller(1)
errorLog.Print(fmt.Sprintf("[%s:%d] ", fn, line), e)
2022-01-25 16:40:02 +01:00
}
2022-01-26 17:09:20 +01:00
func ComponentError(component string, e ...interface{}) {
initLogger()
_, fn, line, _ := runtime.Caller(1)
errorLog.Print(fmt.Sprintf("[%s|%s:%d] ", component, fn, line), e)
2022-01-25 16:40:02 +01:00
}
func SetDebug() {
2022-01-26 17:09:20 +01:00
globalDebug = true
initLogger()
2022-01-25 16:40:02 +01:00
}
func SetOutput(filename string) {
2022-01-26 17:09:20 +01:00
if filename == "stderr" {
if stderr != os.Stderr && stderr != os.Stdout {
stderr.Close()
}
stderr = os.Stderr
} else if filename == "stdout" {
if stderr != os.Stderr && stderr != os.Stdout {
stderr.Close()
}
stderr = os.Stdout
} else {
file, err := os.OpenFile(filename, os.O_APPEND|os.O_CREATE|os.O_WRONLY, 0600)
if err == nil {
defer file.Close()
stderr = file
}
}
debugLog = nil
errorLog = nil
warnLog = nil
initLogger()
2022-01-25 16:40:02 +01:00
}