@@ -24,6 +24,7 @@ const {
2424
2525const Utf8Stream = require ( 'internal/streams/fast-utf8-stream' ) ;
2626const diagnosticsChannel = require ( 'diagnostics_channel' ) ;
27+ const { kEmptyObject } = require ( 'internal/util' ) ;
2728
2829// Create channels for each log level
2930const channels = {
@@ -282,6 +283,20 @@ class Logger {
282283 return ;
283284 }
284285
286+ if ( typeof msgOrObj === 'string' ) {
287+ if ( fields !== undefined ) {
288+ validateObject ( fields , 'fields' ) ;
289+ }
290+ } else if ( ! this . _isError ( msgOrObj ) ) {
291+ validateObject ( msgOrObj , 'obj' ) ;
292+ validateString ( msgOrObj . msg , 'obj.msg' ) ;
293+ }
294+
295+ const channel = channels [ level ] ;
296+ if ( ! channel . hasSubscribers ) {
297+ return ;
298+ }
299+
285300 let msg ;
286301 let logFields ;
287302
@@ -294,10 +309,7 @@ class Logger {
294309 } else if ( typeof msgOrObj === 'string' ) {
295310 msg = msgOrObj ;
296311 logFields = fields || kEmptyObject ;
297- validateObject ( logFields , 'fields' ) ;
298312 } else {
299- validateObject ( msgOrObj , 'obj' ) ;
300- validateString ( msgOrObj . msg , 'obj.msg' ) ;
301313 const { msg : extractedMsg , ...restFields } = msgOrObj ;
302314 msg = extractedMsg ;
303315 logFields = restFields ;
@@ -315,10 +327,7 @@ class Logger {
315327 fields : logFields ,
316328 } ;
317329
318- const channel = channels [ level ] ;
319- if ( channel . hasSubscribers ) {
320- channel . publish ( record ) ;
321- }
330+ channel . publish ( record ) ;
322331 }
323332
324333 /**
0 commit comments