diff --git a/providers/LoggerProvider.js b/providers/LoggerProvider.js index 174ca64..1ac58b0 100644 --- a/providers/LoggerProvider.js +++ b/providers/LoggerProvider.js @@ -14,6 +14,7 @@ const { ServiceProvider } = require('@adonisjs/fold') class LoggerProvider extends ServiceProvider { boot () { const env = use('Adonis/Src/Config').get('app.http.loggerEnv') + const ignoredUrls = use('Adonis/Src/Config').get('app.http.ignoredUrls') /** * Hook only when enabled for current NODE_ENV @@ -24,8 +25,10 @@ class LoggerProvider extends ServiceProvider { const Logger = require('../src/Logger') HttpContext.onReady(function (ctx) { - const logger = new Logger(ctx, AdonisLogger) - logger.hook() + if (!ignoredUrls.includes(ctx.request.url())) { + const logger = new Logger(ctx, AdonisLogger) + logger.hook() + } }) } } diff --git a/src/Logger.js b/src/Logger.js index 1d04a18..965aee8 100644 --- a/src/Logger.js +++ b/src/Logger.js @@ -89,12 +89,13 @@ class Logger { log (url, method, statusCode, startedAt, code) { const ms = prettyMs(this._diffHrTime(startedAt)) const logLevel = this._getLogLevel(statusCode) + const now = new Date().toISOString() /** * Log normally when json is not set to true */ if (!this.isJson) { - this.Logger[logLevel]('%s %s %s %s', method, statusCode, url, ms) + this.Logger[logLevel]('%s | %s %s %s %s', now, method, statusCode, url, ms) return } @@ -114,7 +115,7 @@ class Logger { */ hook () { const start = process.hrtime() - const url = this.request.url() + const url = this.request.originalUrl() const method = this.request.method() onFinished(this.res, (error, res) => { diff --git a/test/logger.spec.js b/test/logger.spec.js index a54aaa6..6e5fb8c 100644 --- a/test/logger.spec.js +++ b/test/logger.spec.js @@ -44,7 +44,7 @@ test.group('Logger', (group) => { const server = http.createServer((req, res) => { const request = { method: () => req.method, - url: () => req.url + originalUrl: () => req.url } const response = { @@ -71,7 +71,7 @@ test.group('Logger', (group) => { const server = http.createServer((req, res) => { const request = { method: () => req.method, - url: () => req.url + originalUrl: () => req.url } const response = { @@ -99,7 +99,7 @@ test.group('Logger', (group) => { const server = http.createServer((req, res) => { const request = { method: () => req.method, - url: () => req.url + originalUrl: () => req.url } const response = { @@ -135,7 +135,7 @@ test.group('Logger', (group) => { const server = http.createServer((req, res) => { const request = { method: () => req.method, - url: () => req.url + originalUrl: () => req.url } const response = { @@ -170,7 +170,7 @@ test.group('Logger', (group) => { const server = http.createServer((req, res) => { const request = { method: () => req.method, - url: () => req.url + originalUrl: () => req.url } const response = { @@ -185,10 +185,10 @@ test.group('Logger', (group) => { }, 200) }) - await supertest(server).get('/') - assert.equal(adLogger.messages.info[0], '%s %s %s %s') - assert.equal(adLogger.messages.info[1], 'GET') - assert.equal(adLogger.messages.info[2], 200) - assert.equal(adLogger.messages.info[3], '/') + await supertest(server).get('/test?query=OK') + assert.equal(adLogger.messages.info[0], '%s | %s %s %s %s') + assert.equal(adLogger.messages.info[2], 'GET') + assert.equal(adLogger.messages.info[3], 200) + assert.equal(adLogger.messages.info[4], '/test?query=OK') }) })