Files
Nataly Musilah 8c084b177e MG-234 - Improve Logging (#255)
Signed-off-by: Musilah <nataleigh.nk@gmail.co>
Signed-off-by: Musilah <nataleigh.nk@gmail.com>
Co-authored-by: Musilah <nataleigh.nk@gmail.co>
Co-authored-by: Dušan Borovčanin <dusan.borovcanin@abstractmachines.fr>
2024-01-18 15:28:04 +01:00

26 lines
563 B
Go

// Copyright (c) Abstract Machines
// SPDX-License-Identifier: Apache-2.0
package logger
import (
"fmt"
"io"
"log/slog"
"time"
)
// New returns wrapped slog logger.
func New(w io.Writer, levelText string) (*slog.Logger, error) {
var level slog.Level
if err := level.UnmarshalText([]byte(levelText)); err != nil {
return &slog.Logger{}, fmt.Errorf(`{"level":"error","message":"%s: %s","ts":"%s"}`, err, levelText, time.RFC3339Nano)
}
logHandler := slog.NewJSONHandler(w, &slog.HandlerOptions{
Level: level,
})
return slog.New(logHandler), nil
}