11import { ACTIONS } from '@pollyjs/utils' ;
2+ import logLevel from 'loglevel' ;
23
34const FORMATTED_ACTIONS = {
45 [ ACTIONS . RECORD ] : 'Recorded' ,
@@ -10,72 +11,50 @@ const FORMATTED_ACTIONS = {
1011export default class Logger {
1112 constructor ( polly ) {
1213 this . polly = polly ;
13- this . groupName = null ;
14+ this . log = logLevel . getLogger ( `@pollyjs/core:${ this . polly . recordingName } ` ) ;
15+
16+ this . log . setLevel ( polly . config . logLevel ) ;
1417 }
1518
1619 connect ( ) {
1720 this . _middleware = this . polly . server
1821 . any ( )
19- . on ( 'error' , ( ...args ) => this . logError ( ...args ) )
20- . on ( 'response' , ( ...args ) => this . logRequest ( ...args ) ) ;
22+ . on ( 'error' , ( ...args ) => this . logRequestError ( ...args ) )
23+ . on ( 'request' , ( ...args ) => this . logRequest ( ...args ) )
24+ . on ( 'response' , ( ...args ) => this . logRequestResponse ( ...args ) ) ;
2125 }
2226
2327 disconnect ( ) {
24- this . groupEnd ( ) ;
2528 this . _middleware . off ( 'error' ) ;
2629 this . _middleware . off ( 'response' ) ;
2730 }
2831
29- groupStart ( groupName ) {
30- // If the provided groupName is different, end the current group so a new one
31- // can be started.
32- if ( this . groupName && this . groupName !== groupName ) {
33- this . groupEnd ( ) ;
34- this . groupName = null ;
35- }
36-
37- // Create a new console group for the provided groupName if one
38- // doesn't already exist.
39- if ( ! this . groupName ) {
40- this . groupName = groupName ;
41- console . group ( this . groupName ) ;
42- }
43- }
44-
45- groupEnd ( ) {
46- if ( this . groupName ) {
47- console . groupEnd ( ) ;
48- }
49- }
50-
5132 logRequest ( request ) {
52- if ( request . config . logging ) {
53- this . groupStart ( request . recordingName ) ;
33+ const { log } = request ;
5434
55- console . groupCollapsed (
56- `${ FORMATTED_ACTIONS [ request . action ] } ➞ ${ request . method } ${
57- request . url
58- } ${ request . response . statusCode } • ${ request . responseTime } ms`
59- ) ;
60- console . log ( 'Request:' , request ) ;
61- console . log ( 'Response:' , request . response ) ;
62- console . log ( 'Identifiers:' , request . identifiers ) ;
63- console . groupEnd ( ) ;
64- }
35+ log . debug ( `Request: ${ request . method } ${ request . url } ` , { request } ) ;
6536 }
6637
67- logError ( request , error ) {
68- this . groupStart ( request . recordingName ) ;
38+ logRequestResponse ( request ) {
39+ const { log } = request ;
40+ const debug = log . getLevel ( ) <= log . levels . DEBUG ;
6941
70- console . group ( `Errored ➞ ${ request . method } ${ request . url } ` ) ;
71- console . error ( error ) ;
72- console . log ( 'Request:' , request ) ;
42+ log . info (
43+ `Response: ${ FORMATTED_ACTIONS [ request . action ] } ➞ ${ request . method } ${
44+ request . url
45+ } ${ request . response . statusCode } • ${ request . responseTime } ms`,
46+ ...( debug ? [ { request, response : request . response } ] : [ ] )
47+ ) ;
48+ }
7349
74- if ( request . didRespond ) {
75- console . log ( 'Response:' , request . response ) ;
76- }
50+ logRequestError ( request , error ) {
51+ const { log } = request ;
52+ const debug = log . getLevel ( ) <= log . levels . DEBUG ;
7753
78- console . log ( 'Identifiers:' , request . identifiers ) ;
79- console . groupEnd ( ) ;
54+ log . error (
55+ `Errored ➞ ${ request . method } ${ request . url } ` ,
56+ error ,
57+ ...( debug ? [ { request } ] : [ ] )
58+ ) ;
8059 }
8160}
0 commit comments