From cb430225be40e79ac9277242c27f629cbfbe517c Mon Sep 17 00:00:00 2001 From: Matt Joiner Date: Mon, 23 Jun 2025 16:07:16 +1000 Subject: [PATCH] Remove package logonce I can't believe it's been around this long. --- logonce/logonce.go | 47 ---------------------------------------------- 1 file changed, 47 deletions(-) delete mode 100644 logonce/logonce.go diff --git a/logonce/logonce.go b/logonce/logonce.go deleted file mode 100644 index 7d44edca..00000000 --- a/logonce/logonce.go +++ /dev/null @@ -1,47 +0,0 @@ -// Package logonce implements an io.Writer facade that only performs distinct -// writes. This can be used by log.Loggers as they're guaranteed to make a -// single Write method call for each message. This is useful for loggers that -// print useful information about unexpected conditions that aren't fatal in -// code. -package logonce - -import ( - "io" - "log" - "os" -) - -// A default logger similar to the default logger in the log package. -var Stderr *log.Logger - -func init() { - // This should emulate the default logger in the log package where - // possible. No time flag so that messages don't differ by time. Code - // debug information is useful. - Stderr = log.New(Writer(os.Stderr), "logonce: ", log.Lshortfile) -} - -type writer struct { - w io.Writer - writes map[string]struct{} -} - -func (w writer) Write(p []byte) (n int, err error) { - s := string(p) - if _, ok := w.writes[s]; ok { - return - } - n, err = w.w.Write(p) - if n != len(s) { - s = string(p[:n]) - } - w.writes[s] = struct{}{} - return -} - -func Writer(w io.Writer) io.Writer { - return writer{ - w: w, - writes: make(map[string]struct{}), - } -} -- 2.51.0