| // 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 |
| } |