return &clone
}
-// daemonLogger returns a logger for one daemon part. JOURNAL_STREAM selects
-// syslog priorities without a time stamp. Other output carries the standard
-// time stamp and level.
-func daemonLogger(out io.Writer, prefix string) *slog.Logger {
- return slog.New(&DaemonLogHandler{
- out: out,
- prefix: prefix,
- journal: os.Getenv("JOURNAL_STREAM") != "",
- mutex: &sync.Mutex{},
- })
-}
-
// daemonLogAttr resolves and writes one attribute, or keeps its cause for the
// end of the line. Groups flatten into dotted keys and empty attributes produce
// no text.
line.WriteByte('=')
if attr.Value.Kind() == slog.KindDuration {
- line.WriteString(durationText(attr.Value.Duration()))
+ line.WriteString(daemonLogDuration(attr.Value.Duration()))
} else {
fmt.Fprint(line, attr.Value.Any())
}
}
-// durationText returns d for a log line: rounded to the second, or to the
+// daemonLogDuration returns d for a log line: rounded to the second, or to the
// millisecond when it is shorter than a second.
-func durationText(d time.Duration) string {
+func daemonLogDuration(d time.Duration) string {
if d < time.Second {
return d.Round(time.Millisecond).String()
}
return d.Round(time.Second).String()
}
+
+// daemonLogger returns a logger for one daemon part. JOURNAL_STREAM selects
+// syslog priorities without a time stamp. Other output carries the standard
+// time stamp and level.
+func daemonLogger(out io.Writer, prefix string) *slog.Logger {
+ return slog.New(&DaemonLogHandler{
+ out: out,
+ prefix: prefix,
+ journal: os.Getenv("JOURNAL_STREAM") != "",
+ mutex: &sync.Mutex{},
+ })
+}