33 lines
590 B
Go
33 lines
590 B
Go
package loggers
|
|
|
|
import (
|
|
"fmt"
|
|
"io"
|
|
"os"
|
|
|
|
"github.com/haydenhargreaves/Potion/internal/infrastructure/logging"
|
|
)
|
|
|
|
// TODO: Implement the Logger interface
|
|
|
|
type ConsoleLogger struct {
|
|
writer io.Writer
|
|
}
|
|
|
|
var _ logging.Logger = (*ConsoleLogger)(nil)
|
|
|
|
func NewConsoleLogger() ConsoleLogger {
|
|
|
|
return ConsoleLogger{
|
|
writer: os.Stdout,
|
|
}
|
|
}
|
|
|
|
func (l *ConsoleLogger) Log(level logging.LogLevel, format string, v ...any) {
|
|
prefix := fmt.Appendf(nil, "[%s] ", level)
|
|
bytes := fmt.Appendf(prefix, format, v...)
|
|
|
|
// WARN: Do we need to worry about errors?
|
|
_, _ = l.writer.Write(bytes)
|
|
}
|