v1.0.4 - init version
This commit is contained in:
70
internal/logger/logger.go
Normal file
70
internal/logger/logger.go
Normal file
@@ -0,0 +1,70 @@
|
||||
package logger
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"os"
|
||||
"runtime"
|
||||
"strings"
|
||||
)
|
||||
|
||||
var (
|
||||
debugMode bool
|
||||
logger *log.Logger
|
||||
)
|
||||
|
||||
func init() {
|
||||
mode := os.Getenv("GO_SPEECH_MODE")
|
||||
debugMode = (mode != "release")
|
||||
logger = log.New(os.Stdout, "", log.LstdFlags|log.Lmicroseconds)
|
||||
}
|
||||
|
||||
// IsDebug возвращает true, если включен режим отладки
|
||||
func IsDebug() bool {
|
||||
return debugMode
|
||||
}
|
||||
|
||||
// Debug логирует сообщение только в режиме отладки
|
||||
func Debug(format string, v ...interface{}) {
|
||||
if debugMode {
|
||||
logMessage("DEBUG", format, v...)
|
||||
}
|
||||
}
|
||||
|
||||
// Info логирует информационное сообщение
|
||||
func Info(format string, v ...interface{}) {
|
||||
logMessage("INFO", format, v...)
|
||||
}
|
||||
|
||||
// Error логирует сообщение об ошибке
|
||||
func Error(format string, v ...interface{}) {
|
||||
logMessage("ERROR", format, v...)
|
||||
}
|
||||
|
||||
// Warn логирует предупреждение
|
||||
func Warn(format string, v ...interface{}) {
|
||||
logMessage("WARN", format, v...)
|
||||
}
|
||||
|
||||
// DebugWithContext логирует сообщение с контекстом (файл и строка)
|
||||
func DebugWithContext(format string, v ...interface{}) {
|
||||
if debugMode {
|
||||
_, file, line, ok := runtime.Caller(1)
|
||||
if ok {
|
||||
file = file[strings.LastIndex(file, "/")+1:]
|
||||
logMessage("DEBUG", fmt.Sprintf("[%s:%d] %s", file, line, format), v...)
|
||||
} else {
|
||||
logMessage("DEBUG", format, v...)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// logMessage форматирует и выводит сообщение
|
||||
func logMessage(level, format string, v ...interface{}) {
|
||||
message := format
|
||||
if len(v) > 0 {
|
||||
message = fmt.Sprintf(format, v...)
|
||||
}
|
||||
logger.Printf("[%s] %s", level, message)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user