| // Copyright 2020 The Go Authors. All rights reserved. | |
| // Use of this source code is governed by a BSD-style | |
| // license that can be found in the LICENSE file. | |
| // Package spanlog provides span and event logger interfaces. | |
| package spanlog | |
| // SpanLogger is something that has the CreateSpan method, which | |
| // creates a event spanning some duration which will eventually be | |
| // logged and visualized. | |
| type Logger interface { | |
| // CreateSpan logs the start of an event. | |
| // optText is 0 or 1 strings. | |
| CreateSpan(event string, optText ...string) Span | |
| } | |
| // Span is a handle that can eventually be closed. | |
| // Typical usage: | |
| // | |
| // sp := sl.CreateSpan("slow_operation") | |
| // result, err := doSlowOperation() | |
| // sp.Done(err) | |
| // // do something with result, err | |
| type Span interface { | |
| // Done marks a span as done. | |
| // The err is returned unmodified for convenience at callsites. | |
| Done(err error) error | |
| } |