Add additional project structure, config, Docker support, and more prompt files
This commit is contained in:
61
internal/logger/logger.go
Normal file
61
internal/logger/logger.go
Normal file
@@ -0,0 +1,61 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user