Skip to content

Commit 7e4bae2

Browse files
committed
tracer flag pkg support to tracer implementation file
1 parent e3e35e8 commit 7e4bae2

File tree

2 files changed

+10
-6
lines changed

2 files changed

+10
-6
lines changed

err2_init.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import (
44
"flag"
55

66
"github.com/lainio/err2/assert"
7-
"github.com/lainio/err2/internal/tracer"
87
)
98

109
var (
@@ -19,9 +18,6 @@ var (
1918
)
2019

2120
func init() {
22-
flag.Var(&tracer.Log, "err2-log", "stream for logging: nil -> log pkg")
23-
flag.Var(&tracer.Error, "err2-trace", "stream for error tracing: stderr, stdout")
24-
flag.Var(&tracer.Panic, "err2-panic-trace", "stream for panic tracing")
2521
flag.Var(&asserterFlag, "err2-asserter", "asserter: Production, Development, Debug")
2622
}
2723

internal/tracer/tracer.go

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
package tracer
33

44
import (
5+
"flag"
56
"io"
67
"os"
78
"sync/atomic"
@@ -30,10 +31,17 @@ func init() {
3031

3132
// nil is a good default for try.Out().Logf() because then we use std log.
3233
Log.SetTracer(nil)
34+
35+
flag.Var(&Log, "err2-log", "stream for logging: nil -> log pkg")
36+
flag.Var(&Error, "err2-trace", "stream for error tracing: stderr, stdout")
37+
flag.Var(&Panic, "err2-panic-trace", "stream for panic tracing")
3338
}
3439

3540
func (v *value) Tracer() io.Writer {
36-
return v.Load().(writer).w
41+
if w, ok := v.Load().(writer); ok {
42+
return w.w
43+
}
44+
return nil
3745
}
3846

3947
func (v *value) SetTracer(w io.Writer) {
@@ -55,7 +63,7 @@ func (v *value) Set(value string) error {
5563
v.SetTracer(os.Stderr)
5664
case "stdout":
5765
v.SetTracer(os.Stdout)
58-
default:
66+
case "nil":
5967
v.SetTracer(nil)
6068
}
6169
return nil

0 commit comments

Comments
 (0)