1
0
Fork 0
telegraf/logger.go
Daniel Baumann 4978089aab
Adding upstream version 1.34.4.
Signed-off-by: Daniel Baumann <daniel@debian.org>
2025-05-24 07:26:29 +02:00

101 lines
2.5 KiB
Go

package telegraf
// LogLevel denotes the level for logging
type LogLevel int
const (
// None means nothing is logged
None LogLevel = iota
// Error will log error messages
Error
// Warn will log error messages and warnings
Warn
// Info will log error messages, warnings and information messages
Info
// Debug will log all of the above and debugging messages issued by plugins
Debug
// Trace will log all of the above and trace messages issued by plugins
Trace
)
func LogLevelFromString(name string) LogLevel {
switch name {
case "ERROR", "error":
return Error
case "WARN", "warn":
return Warn
case "INFO", "info":
return Info
case "DEBUG", "debug":
return Debug
case "TRACE", "trace":
return Trace
}
return None
}
func (e LogLevel) String() string {
switch e {
case Error:
return "ERROR"
case Warn:
return "WARN"
case Info:
return "INFO"
case Debug:
return "DEBUG"
case Trace:
return "TRACE"
}
return "NONE"
}
func (e LogLevel) Indicator() string {
switch e {
case Error:
return "E!"
case Warn:
return "W!"
case Info:
return "I!"
case Debug:
return "D!"
case Trace:
return "T!"
}
return "U!"
}
func (e LogLevel) Includes(level LogLevel) bool {
return e >= level
}
// Logger defines an plugin-related interface for logging.
type Logger interface { //nolint:interfacebloat // All functions are required
// Level returns the configured log-level of the logger
Level() LogLevel
// AddAttribute allows to add a key-value attribute to the logging output
AddAttribute(key string, value interface{})
// Errorf logs an error message, patterned after log.Printf.
Errorf(format string, args ...interface{})
// Error logs an error message, patterned after log.Print.
Error(args ...interface{})
// Warnf logs a warning message, patterned after log.Printf.
Warnf(format string, args ...interface{})
// Warn logs a warning message, patterned after log.Print.
Warn(args ...interface{})
// Infof logs an information message, patterned after log.Printf.
Infof(format string, args ...interface{})
// Info logs an information message, patterned after log.Print.
Info(args ...interface{})
// Debugf logs a debug message, patterned after log.Printf.
Debugf(format string, args ...interface{})
// Debug logs a debug message, patterned after log.Print.
Debug(args ...interface{})
// Tracef logs a trace message, patterned after log.Printf.
Tracef(format string, args ...interface{})
// Trace logs a trace message, patterned after log.Print.
Trace(args ...interface{})
}