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