AdGuardHome/internal/next/cmd/log.go

40 lines
787 B
Go

package cmd
import (
"io"
"log/slog"
"os"
"github.com/AdguardTeam/golibs/logutil/slogutil"
)
// newBaseLogger constructs a base logger based on the command-line options.
// opts must not be nil.
func newBaseLogger(opts *options) (baseLogger *slog.Logger) {
var output io.Writer
switch opts.confFile {
case "stdout":
output = os.Stdout
case "stderr":
output = os.Stderr
case "syslog":
// TODO(a.garipov): Add a syslog handler to golibs.
default:
// TODO(a.garipov): Use the path.
}
lvl := slog.LevelInfo
if opts.verbose {
lvl = slog.LevelDebug
}
return slogutil.New(&slogutil.Config{
Output: output,
// TODO(a.garipov): Get from config?
Format: slogutil.FormatText,
Level: lvl,
// TODO(a.garipov): Get from config.
AddTimestamp: true,
})
}