A writer that writes to multiple other writers and the writers can be added and removed dynamically.
go get github.com/alanshaw/multiwriter
Example:
package main
import (
"os"
"github.com/alanshaw/multiwriter"
)
func main() {
w := multiwriter.New(os.Stdout, os.Stderr)
w.Write([]byte("written to stdout AND stderr\n"))
w.Remove(os.Stderr)
w.Write([]byte("written to ONLY stdout\n"))
w.Remove(os.Stdout)
w.Add(os.Stderr)
w.Write([]byte("written to ONLY stderr\n"))
}
Feel free to dive in! Open an issue or submit PRs.
MIT © Alan Shaw