@@ -87,14 +87,19 @@ func (l *testLogger) String() string {
8787
8888type 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+
9095func (l * defaultLogger ) Print (v ... interface {}) { log .Print (v ... ) }
9196func (l * defaultLogger ) Printf (format string , v ... interface {}) { log .Printf (format , v ... ) }
9297func (l * defaultLogger ) Println (v ... interface {}) { log .Println (v ... ) }
9398
9499var nilInternalLogger internalLogger = loggerAdapter {
95- legacyLogLevel : LogLevelNone ,
96- advLogger : nopLogger {},
97- legacyLogger : nil ,
100+ logLevel : LogLevelNone ,
101+ advLogger : nopLogger {},
102+ legacyLogger : nil ,
98103}
99104
100105type 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
184189type internalLogger interface {
185- AdvancedLogger
190+ StructuredLogger
186191}
187192
188193type loggerAdapter struct {
189- legacyLogLevel LogLevel
190- advLogger AdvancedLogger
191- legacyLogger StdLogger
194+ logLevel LogLevel
195+ advLogger StructuredLogger
196+ legacyLogger StdLogger
192197}
193198
194199func (recv loggerAdapter ) logLegacy (msg string , fields ... LogField ) {
@@ -211,36 +216,36 @@ func (recv loggerAdapter) logLegacy(msg string, fields ...LogField) {
211216func (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
219224func (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
227232func (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
235240func (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
250255func 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