Skip to content

Commit c93dd2e

Browse files
committed
add deprecation notice to Logger and LegacyLogLevel, change default log level to None, rename AdvancedLogger to StructuredLogger
1 parent 7d10585 commit c93dd2e

File tree

5 files changed

+41
-23
lines changed

5 files changed

+41
-23
lines changed

cluster.go

Lines changed: 17 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -259,19 +259,32 @@ type ClusterConfig struct {
259259
// If not provided, Dialer will be used instead.
260260
HostDialer HostDialer
261261

262+
// Deprecated: use StructuredLogger instead, Logger and LegacyLogLevel will be removed in the future.
263+
//
262264
// Logger for this ClusterConfig.
263265
// If not specified, defaults to the gocql.defaultLogger.
264266
Logger StdLogger
265267

266268
// StructuredLogger for this ClusterConfig.
267-
// If not specified, Logger will be used instead.
268-
StructuredLogger AdvancedLogger
269+
// If not specified, Logger will be used instead (note that Logger is deprecated).
270+
//
271+
// There are 3 built in implementations of StructuredLogger:
272+
// - std library "log" package: gocql.NewLogger
273+
// - zerolog: gocqlzerolog.NewZerologLogger
274+
// - zap: gocqlzap.NewZapLogger
275+
//
276+
// The logger created by gocql.NewLogger behaves in a similar way as the legacy default logger, but you can set a log level.
277+
//
278+
// You can also provide your own logger implementation of the StructuredLogger interface.
279+
StructuredLogger StructuredLogger
269280

281+
// Deprecated: use StructuredLogger instead, Logger and LegacyLogLevel will be removed in the future.
282+
//
270283
// LegacyLogLevel for this ClusterConfig, this is only applied for legacy loggers (field Logger).
271284
// This log level is not applied to StructuredLogger because the log level is already a part of the interface
272285
// so the implementation can decide when not to log something.
273286
//
274-
// If not specified, LogLevelWarn will be used as the default.
287+
// If not specified, LogLevelNone will be used as the default.
275288
LegacyLogLevel LogLevel
276289

277290
// internal config for testing
@@ -309,7 +322,7 @@ func NewCluster(hosts ...string) *ClusterConfig {
309322
ConvictionPolicy: &SimpleConvictionPolicy{},
310323
ReconnectionPolicy: &ConstantReconnectionPolicy{MaxRetries: 3, Interval: 1 * time.Second},
311324
WriteCoalesceWaitTime: 200 * time.Microsecond,
312-
LegacyLogLevel: LogLevelWarn,
325+
LegacyLogLevel: LogLevelNone,
313326
}
314327
return cfg
315328
}

conn.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ type ConnConfig struct {
145145
AuthProvider func(h *HostInfo) (Authenticator, error)
146146
Keepalive time.Duration
147147
Logger StdLogger
148-
StructuredLogger AdvancedLogger
148+
StructuredLogger StructuredLogger
149149
LegacyLogLevel LogLevel
150150

151151
tlsConfig *tls.Config

extensions/gocqlzap/zap.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import (
88
const DefaultName = "gocql"
99

1010
type Logger interface {
11-
gocql.AdvancedLogger
11+
gocql.StructuredLogger
1212
ZapLogger() *zap.Logger
1313
}
1414

extensions/gocqlzerolog/zerolog.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ const DefaultName = "gocql"
99
const DefaultNameField = "logger"
1010

1111
type Logger interface {
12-
gocql.AdvancedLogger
12+
gocql.StructuredLogger
1313
ZerologLogger() zerolog.Logger
1414
}
1515

logger.go

Lines changed: 21 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -87,14 +87,19 @@ func (l *testLogger) String() string {
8787

8888
type defaultLogger struct{}
8989

90+
// NewLogger creates an StructuredLogger that uses the standard library "log" package.
91+
func NewLogger(logLevel LogLevel) StructuredLogger {
92+
return newInternalLoggerFromStdLogger(&defaultLogger{}, logLevel)
93+
}
94+
9095
func (l *defaultLogger) Print(v ...interface{}) { log.Print(v...) }
9196
func (l *defaultLogger) Printf(format string, v ...interface{}) { log.Printf(format, v...) }
9297
func (l *defaultLogger) Println(v ...interface{}) { log.Println(v...) }
9398

9499
var nilInternalLogger internalLogger = loggerAdapter{
95-
legacyLogLevel: LogLevelNone,
96-
advLogger: nopLogger{},
97-
legacyLogger: nil,
100+
logLevel: LogLevelNone,
101+
advLogger: nopLogger{},
102+
legacyLogger: nil,
98103
}
99104

100105
type LogLevel int
@@ -174,21 +179,21 @@ func newLogFieldBool(name string, value bool) LogField {
174179
return newLogField(name, logFieldValueBool(value))
175180
}
176181

177-
type AdvancedLogger interface {
182+
type StructuredLogger interface {
178183
Error(msg string, fields ...LogField)
179184
Warning(msg string, fields ...LogField)
180185
Info(msg string, fields ...LogField)
181186
Debug(msg string, fields ...LogField)
182187
}
183188

184189
type internalLogger interface {
185-
AdvancedLogger
190+
StructuredLogger
186191
}
187192

188193
type loggerAdapter struct {
189-
legacyLogLevel LogLevel
190-
advLogger AdvancedLogger
191-
legacyLogger StdLogger
194+
logLevel LogLevel
195+
advLogger StructuredLogger
196+
legacyLogger StdLogger
192197
}
193198

194199
func (recv loggerAdapter) logLegacy(msg string, fields ...LogField) {
@@ -211,36 +216,36 @@ func (recv loggerAdapter) logLegacy(msg string, fields ...LogField) {
211216
func (recv loggerAdapter) Error(msg string, fields ...LogField) {
212217
if recv.advLogger != nil {
213218
recv.advLogger.Error(msg, fields...)
214-
} else if LogLevelError <= recv.legacyLogLevel {
219+
} else if LogLevelError <= recv.logLevel {
215220
recv.logLegacy(msg, fields...)
216221
}
217222
}
218223

219224
func (recv loggerAdapter) Warning(msg string, fields ...LogField) {
220225
if recv.advLogger != nil {
221226
recv.advLogger.Warning(msg, fields...)
222-
} else if LogLevelWarn <= recv.legacyLogLevel {
227+
} else if LogLevelWarn <= recv.logLevel {
223228
recv.logLegacy(msg, fields...)
224229
}
225230
}
226231

227232
func (recv loggerAdapter) Info(msg string, fields ...LogField) {
228233
if recv.advLogger != nil {
229234
recv.advLogger.Info(msg, fields...)
230-
} else if LogLevelInfo <= recv.legacyLogLevel {
235+
} else if LogLevelInfo <= recv.logLevel {
231236
recv.logLegacy(msg, fields...)
232237
}
233238
}
234239

235240
func (recv loggerAdapter) Debug(msg string, fields ...LogField) {
236241
if recv.advLogger != nil {
237242
recv.advLogger.Debug(msg, fields...)
238-
} else if LogLevelDebug <= recv.legacyLogLevel {
243+
} else if LogLevelDebug <= recv.logLevel {
239244
recv.logLegacy(msg, fields...)
240245
}
241246
}
242247

243-
func newInternalLoggerFromAdvancedLogger(logger AdvancedLogger) loggerAdapter {
248+
func newInternalLoggerFromAdvancedLogger(logger StructuredLogger) loggerAdapter {
244249
return loggerAdapter{
245250
advLogger: logger,
246251
legacyLogger: nil,
@@ -249,9 +254,9 @@ func newInternalLoggerFromAdvancedLogger(logger AdvancedLogger) loggerAdapter {
249254

250255
func newInternalLoggerFromStdLogger(logger StdLogger, level LogLevel) loggerAdapter {
251256
return loggerAdapter{
252-
legacyLogLevel: level,
253-
advLogger: nil,
254-
legacyLogger: logger,
257+
logLevel: level,
258+
advLogger: nil,
259+
legacyLogger: logger,
255260
}
256261
}
257262

0 commit comments

Comments
 (0)