Skip to content

Commit 57dd2a4

Browse files
author
Davit Yeghshatyan
committed
Add logger to factory
Signed-off-by: Davit Yeghshatyan <davo@uber.com>
1 parent eeeb790 commit 57dd2a4

File tree

7 files changed

+43
-28
lines changed

7 files changed

+43
-28
lines changed

cmd/collector/main.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,11 @@ func main() {
5858
var signalsChannel = make(chan os.Signal, 0)
5959
signal.Notify(signalsChannel, os.Interrupt, syscall.SIGTERM)
6060

61-
storageFactory, err := storage.NewFactory(storage.FactoryConfigFromEnvAndCLI(os.Args, os.Stderr))
61+
logger, err := zap.NewProduction()
62+
if err != nil {
63+
log.Fatalf("Cannot initialize logger: %v", err)
64+
}
65+
storageFactory, err := storage.NewFactory(storage.FactoryConfigFromEnvAndCLI(os.Args, logger))
6266
if err != nil {
6367
log.Fatalf("Cannot initialize storage factory: %v", err)
6468
}

cmd/query/main.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,11 @@ func main() {
4545
var serverChannel = make(chan os.Signal, 0)
4646
signal.Notify(serverChannel, os.Interrupt, syscall.SIGTERM)
4747

48-
storageFactory, err := storage.NewFactory(storage.FactoryConfigFromEnvAndCLI(os.Args, os.Stderr))
48+
logger, err := zap.NewProduction()
49+
if err != nil {
50+
log.Fatalf("Cannot initialize logger: %v", err)
51+
}
52+
storageFactory, err := storage.NewFactory(storage.FactoryConfigFromEnvAndCLI(os.Args, logger))
4953
if err != nil {
5054
log.Fatalf("Cannot initialize storage factory: %v", err)
5155
}

cmd/standalone/main.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,11 @@ func main() {
6666
if os.Getenv(storage.SpanStorageTypeEnvVar) == "" {
6767
os.Setenv(storage.SpanStorageTypeEnvVar, "memory") // other storage types default to SpanStorage
6868
}
69-
storageFactory, err := storage.NewFactory(storage.FactoryConfigFromEnvAndCLI(os.Args, os.Stderr))
69+
logger, err := zap.NewProduction()
70+
if err != nil {
71+
log.Fatalf("Cannot initialize logger: %v", err)
72+
}
73+
storageFactory, err := storage.NewFactory(storage.FactoryConfigFromEnvAndCLI(os.Args, logger))
7074
if err != nil {
7175
log.Fatalf("Cannot initialize storage factory: %v", err)
7276
}

plugin/storage/factory.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -163,8 +163,8 @@ func (f *Factory) CreateArchiveSpanReader() (spanstore.Reader, error) {
163163
// CreateArchiveSpanWriter implements storage.ArchiveFactory
164164
func (f *Factory) CreateArchiveSpanWriter() (spanstore.Writer, error) {
165165
if len(f.SpanWriterTypes) > 1 {
166-
fmt.Fprintf(f.log, "WARNING: Since there are multiple span storage types,"+
167-
" the first (%s) will be used for archving\n", f.SpanWriterTypes[0])
166+
f.logger.Warn("since there are multiple span storage types," +
167+
" the first (" + f.SpanWriterTypes[0] + ") will be used for archiving\n")
168168
}
169169
factory, ok := f.factories[f.SpanWriterTypes[0]]
170170
if !ok {

plugin/storage/factory_config.go

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,10 @@
1515
package storage
1616

1717
import (
18-
"fmt"
19-
"io"
2018
"os"
2119
"strings"
20+
21+
"go.uber.org/zap"
2222
)
2323

2424
const (
@@ -39,7 +39,7 @@ type FactoryConfig struct {
3939
SpanWriterTypes []string
4040
SpanReaderType string
4141
DependenciesStorageType string
42-
log io.Writer
42+
logger *zap.Logger
4343
}
4444

4545
// FactoryConfigFromEnvAndCLI reads the desired types of storage backends from SPAN_STORAGE_TYPE,
@@ -52,11 +52,11 @@ type FactoryConfig struct {
5252
//
5353
// For backwards compatibility it also parses the args looking for deprecated --span-storage.type flag.
5454
// If found, it writes a deprecation warning to the log.
55-
func FactoryConfigFromEnvAndCLI(args []string, log io.Writer) FactoryConfig {
55+
func FactoryConfigFromEnvAndCLI(args []string, logger *zap.Logger) FactoryConfig {
5656
spanStorageType := os.Getenv(SpanStorageTypeEnvVar)
5757
if spanStorageType == "" {
5858
// for backwards compatibility check command line for --span-storage.type flag
59-
spanStorageType = spanStorageTypeFromArgs(args, log)
59+
spanStorageType = spanStorageTypeFromArgs(args, logger)
6060
}
6161
if spanStorageType == "" {
6262
spanStorageType = cassandraStorageType
@@ -66,9 +66,8 @@ func FactoryConfigFromEnvAndCLI(args []string, log io.Writer) FactoryConfig {
6666
spanReaderType := os.Getenv(SpanReaderTypeEnvVar)
6767
if spanReaderType == "" {
6868
if len(spanWriterTypes) > 1 {
69-
fmt.Fprintf(log, "WARNING: The first span storage type listed (%s) will be used for reading. "+
70-
"Please use environment variable %s to specify which storage type to read from\n",
71-
spanWriterTypes[0], SpanReaderTypeEnvVar)
69+
logger.Warn("the first span storage type listed (" + spanWriterTypes[0] + ") will be used for reading. " +
70+
"Please use environment variable " + SpanReaderTypeEnvVar + " to specify which storage type to read from")
7271
}
7372
spanReaderType = spanWriterTypes[0]
7473
}
@@ -81,24 +80,20 @@ func FactoryConfigFromEnvAndCLI(args []string, log io.Writer) FactoryConfig {
8180
SpanWriterTypes: spanWriterTypes,
8281
SpanReaderType: spanReaderType,
8382
DependenciesStorageType: depStorageType,
84-
log: log,
83+
logger: logger,
8584
}
8685
}
8786

88-
func spanStorageTypeFromArgs(args []string, log io.Writer) string {
87+
func spanStorageTypeFromArgs(args []string, logger *zap.Logger) string {
8988
for i, token := range args {
9089
if i == 0 {
9190
continue // skip app name; easier than dealing with +-1 offset
9291
}
9392
if !strings.HasPrefix(token, spanStorageFlag) {
9493
continue
9594
}
96-
fmt.Fprintf(
97-
log,
98-
"WARNING: found deprecated command line option %s, please use environment variable %s instead\n",
99-
token,
100-
SpanStorageTypeEnvVar,
101-
)
95+
logger.Warn("found deprecated command line option " + token +
96+
", please use environment variable " + SpanStorageTypeEnvVar + " instead")
10297
if token == spanStorageFlag && i < len(args)-1 {
10398
return args[i+1]
10499
}

plugin/storage/factory_config_test.go

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,13 @@
1515
package storage
1616

1717
import (
18-
"bytes"
1918
"os"
2019
"testing"
2120

2221
"github.com/stretchr/testify/assert"
22+
"go.uber.org/zap"
23+
24+
"github.com/jaegertracing/jaeger/pkg/testutils"
2325
)
2426

2527
func clearEnv() {
@@ -49,7 +51,7 @@ func TestFactoryConfigFromEnv(t *testing.T) {
4951

5052
os.Setenv(SpanStorageTypeEnvVar, elasticsearchStorageType+","+kafkaStorageType)
5153

52-
f = FactoryConfigFromEnvAndCLI(nil, &bytes.Buffer{})
54+
f = FactoryConfigFromEnvAndCLI(nil, zap.NewNop())
5355
assert.Equal(t, 2, len(f.SpanWriterTypes))
5456
assert.Equal(t, []string{elasticsearchStorageType, kafkaStorageType}, f.SpanWriterTypes)
5557
assert.Equal(t, elasticsearchStorageType, f.SpanReaderType)
@@ -75,15 +77,15 @@ func TestFactoryConfigFromEnvDeprecated(t *testing.T) {
7577
{args: []string{"appname", "-x", "y"}, log: false, value: "cassandra"},
7678
}
7779
for _, testCase := range testCases {
78-
log := new(bytes.Buffer)
79-
f := FactoryConfigFromEnvAndCLI(testCase.args, log)
80+
logger, buffer := testutils.NewLogger()
81+
f := FactoryConfigFromEnvAndCLI(testCase.args, logger)
8082
assert.Equal(t, 1, len(f.SpanWriterTypes))
8183
assert.Equal(t, testCase.value, f.SpanWriterTypes[0])
8284
assert.Equal(t, testCase.value, f.SpanReaderType)
8385
assert.Equal(t, testCase.value, f.DependenciesStorageType)
8486
if testCase.log {
85-
expectedLog := "WARNING: found deprecated command line option"
86-
assert.Equal(t, expectedLog, log.String()[0:len(expectedLog)])
87+
expectedLog := "{\"level\":\"warn\",\"msg\":\"found deprecated command line option"
88+
assert.Equal(t, expectedLog, buffer.String()[0:len(expectedLog)])
8789
}
8890
}
8991
}

plugin/storage/factory_test.go

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ func defaultCfg() FactoryConfig {
4040
SpanWriterTypes: []string{cassandraStorageType},
4141
SpanReaderType: cassandraStorageType,
4242
DependenciesStorageType: cassandraStorageType,
43+
logger: zap.NewNop(),
4344
}
4445
}
4546

@@ -135,7 +136,12 @@ func TestCreate(t *testing.T) {
135136
}
136137

137138
func TestCreateArchive(t *testing.T) {
138-
f, err := NewFactory(defaultCfg())
139+
f, err := NewFactory(FactoryConfig{
140+
SpanWriterTypes: []string{cassandraStorageType, elasticsearchStorageType},
141+
SpanReaderType: cassandraStorageType,
142+
DependenciesStorageType: cassandraStorageType,
143+
logger: zap.NewNop(),
144+
})
139145
require.NoError(t, err)
140146
assert.NotEmpty(t, f.factories[cassandraStorageType])
141147

0 commit comments

Comments
 (0)