61 lines
1.1 KiB
Go
61 lines
1.1 KiB
Go
package logger
|
|
|
|
import (
|
|
"log"
|
|
"os"
|
|
)
|
|
|
|
// Logger represents a simple logger wrapper
|
|
type Logger struct {
|
|
logger *log.Logger
|
|
level string
|
|
}
|
|
|
|
// New creates a new logger
|
|
func New(level string, format string, file string) *Logger {
|
|
// Determine output destination
|
|
var output *os.File
|
|
if file != "" {
|
|
f, err := os.OpenFile(file, os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
output = f
|
|
} else {
|
|
output = os.Stdout
|
|
}
|
|
|
|
// Create the logger
|
|
logger := log.New(output, "", log.LstdFlags|log.Lshortfile)
|
|
|
|
return &Logger{
|
|
logger: logger,
|
|
level: level,
|
|
}
|
|
}
|
|
|
|
// Debug logs a debug message
|
|
func (l *Logger) Debug(v ...interface{}) {
|
|
if l.level == "debug" {
|
|
l.logger.Print("DEBUG: ", v)
|
|
}
|
|
}
|
|
|
|
// Info logs an info message
|
|
func (l *Logger) Info(v ...interface{}) {
|
|
if l.level == "debug" || l.level == "info" {
|
|
l.logger.Print("INFO: ", v)
|
|
}
|
|
}
|
|
|
|
// Warn logs a warning message
|
|
func (l *Logger) Warn(v ...interface{}) {
|
|
if l.level == "debug" || l.level == "info" || l.level == "warn" {
|
|
l.logger.Print("WARN: ", v)
|
|
}
|
|
}
|
|
|
|
// Error logs an error message
|
|
func (l *Logger) Error(v ...interface{}) {
|
|
l.logger.Print("ERROR: ", v)
|
|
} |