-
Notifications
You must be signed in to change notification settings - Fork 3
/
console.go
45 lines (38 loc) · 1.1 KB
/
console.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
package tracer
import (
"io"
"os"
"go.opentelemetry.io/otel/exporters/stdout/stdouttrace"
stdout "go.opentelemetry.io/otel/exporters/stdout/stdouttrace"
sdkTrace "go.opentelemetry.io/otel/sdk/trace"
)
// NewConsoleExporter 输出到控台
func NewConsoleExporter() (sdkTrace.SpanExporter, error) {
return stdout.New(stdout.WithPrettyPrint())
}
// NewFileExporter 输出到文件,程序结束前要关闭文件句柄
func NewFileExporter(filename string) (sdkTrace.SpanExporter, *os.File, error) {
if filename == "" {
filename = "traces.json"
}
// Write telemetry data to a file.
f, err := os.Create(filename)
if err != nil {
panic("os.Create error: " + err.Error())
}
exporter, err := newExporter(f)
if err != nil {
panic("newExporter error: " + err.Error())
}
return exporter, f, nil
}
// newExporter returns a console exporter.
func newExporter(w io.Writer) (sdkTrace.SpanExporter, error) {
return stdouttrace.New(
stdouttrace.WithWriter(w),
// Use human readable output.
stdouttrace.WithPrettyPrint(),
// Do not print timestamps for the demo.
stdouttrace.WithoutTimestamps(),
)
}