79 lines
1.6 KiB
Go
79 lines
1.6 KiB
Go
package logger
|
|
|
|
import (
|
|
"fmt"
|
|
"log"
|
|
"os"
|
|
)
|
|
|
|
// Interface logger interface
|
|
type Interface interface {
|
|
SQL(data ...interface{})
|
|
Info(data ...interface{})
|
|
Warn(data ...interface{})
|
|
Error(data ...interface{})
|
|
}
|
|
|
|
// LogLevel log level
|
|
type LogLevel int
|
|
|
|
// DefaultLogLevel default log level
|
|
var DefaultLogLevel LogLevel
|
|
|
|
// DefaultLogger default logger
|
|
var DefaultLogger = Logger{log.New(os.Stdout, "\r\n", 0)}
|
|
|
|
const (
|
|
// Info print SQL, warn messages and errors
|
|
Info LogLevel = iota - 1
|
|
// Warn print warn messages and errors
|
|
Warn
|
|
// Error print errors
|
|
Error
|
|
)
|
|
|
|
func init() {
|
|
switch os.Getenv("GORM_LOG_LEVEL") {
|
|
case "info":
|
|
DefaultLogLevel = Info
|
|
case "warn":
|
|
DefaultLogLevel = Warn
|
|
case "error":
|
|
DefaultLogLevel = Error
|
|
default:
|
|
DefaultLogLevel = Error
|
|
}
|
|
}
|
|
|
|
// LogWriter log writer interface
|
|
type LogWriter interface {
|
|
Println(v ...interface{})
|
|
}
|
|
|
|
// Logger logger
|
|
type Logger struct {
|
|
LogWriter
|
|
}
|
|
|
|
// SQL print SQL statements
|
|
func (logger Logger) SQL(data ...interface{}) {
|
|
}
|
|
|
|
// Info print info
|
|
func (logger Logger) Info(message string, data ...interface{}) {
|
|
// TODO show file line number
|
|
logger.Println(fmt.Sprintf("[info] %v", fmt.Sprintf(message, data...)))
|
|
}
|
|
|
|
// Warn print warn messages
|
|
func (logger Logger) Warn(message string, data ...interface{}) {
|
|
// TODO show file line number
|
|
logger.Println(fmt.Sprintf("[warn] %v", fmt.Sprintf(message, data...)))
|
|
}
|
|
|
|
// Error print error messages
|
|
func (logger Logger) Error(message string, data ...interface{}) {
|
|
// TODO show file line number
|
|
logger.Println(fmt.Sprintf("[error] %v", fmt.Sprintf(message, data...)))
|
|
}
|