From 385e7e7c9ed01586dc6b5c8e6d69e3e61ad58838 Mon Sep 17 00:00:00 2001 From: Diamond Lewis Date: Tue, 13 Aug 2019 19:06:39 -0500 Subject: [PATCH 1/2] Fix: Logger print JSON and Numbers --- spec/WinstonLoggerAdapter.spec.js | 98 ++++++++++++++++++++++++++++ src/Adapters/Logger/WinstonLogger.js | 2 +- 2 files changed, 99 insertions(+), 1 deletion(-) diff --git a/spec/WinstonLoggerAdapter.spec.js b/spec/WinstonLoggerAdapter.spec.js index c476a06be5..c0eddf3083 100644 --- a/spec/WinstonLoggerAdapter.spec.js +++ b/spec/WinstonLoggerAdapter.spec.js @@ -59,6 +59,38 @@ describe('info logs', () => { ); expect(log); }); + + it('info logs should interpolate json', async () => { + const winstonLoggerAdapter = new WinstonLoggerAdapter(); + winstonLoggerAdapter.log('info', 'testing info logs with %j', { hello: 'world' }); + const results = await winstonLoggerAdapter.query({ + from: new Date(Date.now() - 500), + size: 100, + level: 'info', + order: 'desc', + }); + expect(results.length > 0).toBeTruthy(); + const log = results.find( + x => x.message === 'testing info logs with {"hello":"world"}' + ); + expect(log); + }); + + it('info logs should interpolate number', async () => { + const winstonLoggerAdapter = new WinstonLoggerAdapter(); + winstonLoggerAdapter.log('info', 'testing info logs with %d', 123); + const results = await winstonLoggerAdapter.query({ + from: new Date(Date.now() - 500), + size: 100, + level: 'info', + order: 'desc', + }); + expect(results.length > 0).toBeTruthy(); + const log = results.find( + x => x.message === 'testing info logs with 123' + ); + expect(log); + }); }); describe('error logs', () => { @@ -113,6 +145,38 @@ describe('error logs', () => { ); expect(log); }); + + it('error logs should interpolate json', async () => { + const winstonLoggerAdapter = new WinstonLoggerAdapter(); + winstonLoggerAdapter.log('error', 'testing error logs with %j', { hello: 'world' }); + const results = await winstonLoggerAdapter.query({ + from: new Date(Date.now() - 500), + size: 100, + level: 'error', + order: 'desc', + }); + expect(results.length > 0).toBeTruthy(); + const log = results.find( + x => x.message === 'testing error logs with {"hello":"world"}' + ); + expect(log); + }); + + it('error logs should interpolate number', async () => { + const winstonLoggerAdapter = new WinstonLoggerAdapter(); + winstonLoggerAdapter.log('error', 'testing error logs with %d', 123); + const results = await winstonLoggerAdapter.query({ + from: new Date(Date.now() - 500), + size: 100, + level: 'error', + order: 'desc', + }); + expect(results.length > 0).toBeTruthy(); + const log = results.find( + x => x.message === 'testing error logs with 123' + ); + expect(log); + }); }); describe('verbose logs', () => { @@ -180,4 +244,38 @@ describe('verbose logs', () => { ); expect(log); }); + + it('verbose logs should interpolate json', async () => { + await reconfigureServer({ verbose: true }); + const winstonLoggerAdapter = new WinstonLoggerAdapter(); + winstonLoggerAdapter.log('verbose', 'testing verbose logs with %j', { hello: 'world' }); + const results = await winstonLoggerAdapter.query({ + from: new Date(Date.now() - 500), + size: 100, + level: 'verbose', + order: 'desc', + }); + expect(results.length > 0).toBeTruthy(); + const log = results.find( + x => x.message === 'testing verbose logs with {"hello":"world"}' + ); + expect(log); + }); + + it('verbose logs should interpolate number', async () => { + await reconfigureServer({ verbose: true }); + const winstonLoggerAdapter = new WinstonLoggerAdapter(); + winstonLoggerAdapter.log('verbose', 'testing verbose logs with %d', 123); + const results = await winstonLoggerAdapter.query({ + from: new Date(Date.now() - 500), + size: 100, + level: 'verbose', + order: 'desc', + }); + expect(results.length > 0).toBeTruthy(); + const log = results.find( + x => x.message === 'testing verbose logs with 123' + ); + expect(log); + }); }); diff --git a/src/Adapters/Logger/WinstonLogger.js b/src/Adapters/Logger/WinstonLogger.js index 4ff37bb0c6..3713fac037 100644 --- a/src/Adapters/Logger/WinstonLogger.js +++ b/src/Adapters/Logger/WinstonLogger.js @@ -19,7 +19,7 @@ function configureTransports(options) { { filename: 'parse-server.info', json: true, - format: format.combine(format.timestamp(), format.json()), + format: format.combine(format.timestamp(), format.splat(), format.json()), }, options ) From 55c6adfd7742ee0e29fadbea011b73bb72a1c7d8 Mon Sep 17 00:00:00 2001 From: Diamond Lewis Date: Tue, 13 Aug 2019 19:25:21 -0500 Subject: [PATCH 2/2] fix test --- spec/FilesController.spec.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/FilesController.spec.js b/spec/FilesController.spec.js index 48908c6df3..ad3a40e755 100644 --- a/spec/FilesController.spec.js +++ b/spec/FilesController.spec.js @@ -65,7 +65,7 @@ describe('FilesController', () => { expect(log1.level).toBe('error'); const log2 = logs.find( - x => x.message === 'Parse error: Could not store file: yolo.txt.' + x => x.message === 'Could not store file: yolo.txt.' ); expect(log2.level).toBe('error'); expect(log2.code).toBe(130);