openWriter opens a writer using opener, and returns true if the writer is new, or false if the writer already exists.
(opener WriterOpener)
| 248 | // openWriter opens a writer using opener, and returns true if |
| 249 | // the writer is new, or false if the writer already exists. |
| 250 | func (logging *Logging) openWriter(opener WriterOpener) (io.WriteCloser, bool, error) { |
| 251 | key := opener.WriterKey() |
| 252 | writer, loaded, err := writers.LoadOrNew(key, func() (Destructor, error) { |
| 253 | w, err := opener.OpenWriter() |
| 254 | return writerDestructor{w}, err |
| 255 | }) |
| 256 | if err != nil { |
| 257 | return nil, false, err |
| 258 | } |
| 259 | logging.writerKeys = append(logging.writerKeys, key) |
| 260 | return writer.(io.WriteCloser), !loaded, nil |
| 261 | } |
| 262 | |
| 263 | // WriterOpener is a module that can open a log writer. |
| 264 | // It can return a human-readable string representation |
no test coverage detected