working commit

This commit is contained in:
2026-02-06 10:48:29 +02:00
parent 88bfe00d61
commit 97c58bb283
11 changed files with 50 additions and 105 deletions
+29 -6
View File
@@ -11,25 +11,44 @@ import (
var (
mtx sync.Mutex
output io.Writer = os.Stderr
output io.WriteCloser = os.Stderr
)
type Logger struct {
subject string
writer io.WriteCloser
mtx *sync.Mutex
}
func NewLogger(subj string) *Logger {
func NewLoggerWithSubject(subj string) *Logger {
return &Logger{
subject: subj,
writer: output,
mtx: &mtx,
}
}
func SetWriter(newOut io.Writer) {
func NewLogger() *Logger {
return &Logger{
writer: output,
mtx: &mtx,
}
}
func SetWriter(newOut io.WriteCloser) {
mtx.Lock()
output = newOut
mtx.Unlock()
}
func (logg *Logger) SetWriter(newOut io.WriteCloser) {
mtx.Lock()
logg.writer = newOut
var newMtx sync.Mutex
logg.mtx = &newMtx
mtx.Unlock()
}
func (logg *Logger) Debugf(message string, args ...any) {
logg.printf("debug", message, args...)
}
@@ -49,10 +68,14 @@ func (logg *Logger) Errorf(message string, args ...any) {
func (logg *Logger) printf(level, message string, args ...any) {
timestamp := time.Now().Format(time.RFC3339)
buffer := bytes.NewBuffer([]byte{})
fmt.Fprintf(buffer, "%s %s.%s: ", timestamp, logg.subject, level)
if logg.subject != "" {
fmt.Fprintf(buffer, "%s %s.%s: ", timestamp, logg.subject, level)
} else {
fmt.Fprintf(buffer, "%s %s: ", timestamp, level)
}
fmt.Fprintf(buffer, message, args...)
fmt.Fprintf(buffer, "\n")
mtx.Lock()
logg.mtx.Lock()
fmt.Fprint(output, buffer.String())
mtx.Unlock()
logg.mtx.Unlock()
}