internal/logger/logger.go (76 lines of code) (raw):

// Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one // or more contributor license agreements. Licensed under the Elastic License; // you may not use this file except in compliance with the Elastic License. package logger import ( "fmt" "log" ) var isDebugMode bool var isTraceMode bool // EnableDebugMode method enables verbose logging. func EnableDebugMode() { isDebugMode = true Debug("Enable verbose logging") } // EnableTraceMode method enables trace verbose logging. func EnableTraceMode() { isDebugMode = true isTraceMode = true Debug("Enable trace verbose logging") } // Debug method logs message with "debug" level. func Debug(a ...interface{}) { if !IsDebugMode() { return } logMessage("DEBUG", a...) } // Debugf method logs message with "debug" level and formats it. func Debugf(format string, a ...interface{}) { if !IsDebugMode() { return } logMessagef("DEBUG", format, a...) } // IsDebugMode method checks if the debug mode is enabled. func IsDebugMode() bool { return isDebugMode || isTraceMode } // Trace method logs message with "trace" level. func Trace(a ...interface{}) { if !IsTraceMode() { return } logMessage("TRACE", a...) } // Tracef method logs message with "trace" level and formats it. func Tracef(format string, a ...interface{}) { if !IsTraceMode() { return } logMessagef("TRACE", format, a...) } // IsTraceMode method checks if the trace mode is enabled. func IsTraceMode() bool { return isTraceMode } // Info method logs message with "info" level. func Info(a ...interface{}) { logMessage("INFO", a...) } // Infof method logs message with "info" level and formats it. func Infof(format string, a ...interface{}) { logMessagef("INFO", format, a...) } // Warn method logs message with "warn" level. func Warn(a ...interface{}) { logMessage("WARN", a...) } // Warnf method logs message with "warn" level and formats it. func Warnf(format string, a ...interface{}) { logMessagef("WARN", format, a...) } // Error method logs message with "error" level. func Error(a ...interface{}) { logMessage("ERROR", a...) } // Errorf method logs message with "error" level and formats it. func Errorf(format string, a ...interface{}) { logMessagef("ERROR", format, a...) } func logMessage(level string, a ...interface{}) { var all []interface{} all = append(all, fmt.Sprintf("%5s ", level)) all = append(all, a...) log.Print(all...) } func logMessagef(level string, format string, a ...interface{}) { var all []interface{} all = append(all, level) all = append(all, a...) log.Printf("%5s "+format, all...) }