32 lines
701 B
Go
32 lines
701 B
Go
// Package logger provides structured logging for the application
|
|
package logger
|
|
|
|
import (
|
|
"io"
|
|
"log"
|
|
"os"
|
|
)
|
|
|
|
var (
|
|
Debug *log.Logger
|
|
Info *log.Logger
|
|
Warn *log.Logger
|
|
Error *log.Logger
|
|
)
|
|
|
|
func init() {
|
|
// Check if DEBUG mode is enabled
|
|
debugEnabled := os.Getenv("DEBUG") == "true"
|
|
|
|
if debugEnabled {
|
|
Debug = log.New(os.Stdout, "DEBUG: ", log.Ldate|log.Ltime|log.Lshortfile)
|
|
} else {
|
|
// Discard debug logs in production
|
|
Debug = log.New(io.Discard, "", 0)
|
|
}
|
|
|
|
Info = log.New(os.Stdout, "INFO: ", log.Ldate|log.Ltime|log.Lshortfile)
|
|
Warn = log.New(os.Stdout, "WARN: ", log.Ldate|log.Ltime|log.Lshortfile)
|
|
Error = log.New(os.Stderr, "ERROR: ", log.Ldate|log.Ltime|log.Lshortfile)
|
|
}
|