diff --git a/lib/api/api-router.js b/lib/api/api-router.js index 9ce4fa2d..4356df5d 100644 --- a/lib/api/api-router.js +++ b/lib/api/api-router.js @@ -86,8 +86,7 @@ module.exports = class ApiRouter { const { rendererCache, tileBackend, attributesBackend, previewBackend, mapBackend, mapStore } = windshaftFactory({ rendererOptions: serverOptions, redisPool, - onTileErrorStrategy: getOnTileErrorStrategy({ enabled: environmentOptions.enabledFeatures.onTileErrorStrategy }), - logger: global.logger + onTileErrorStrategy: getOnTileErrorStrategy({ enabled: environmentOptions.enabledFeatures.onTileErrorStrategy }) }); const rendererStatsReporter = new RendererStatsReporter(rendererCache, serverOptions.renderCache.statsInterval); diff --git a/lib/api/map/anonymous-map-controller.js b/lib/api/map/anonymous-map-controller.js index 46ed876a..85e9860a 100644 --- a/lib/api/map/anonymous-map-controller.js +++ b/lib/api/map/anonymous-map-controller.js @@ -95,7 +95,6 @@ module.exports = class AnonymousMapController { metrics({ enabled: this.config.pubSubMetrics.enabled, metricsBackend: this.metricsBackend, - logger: global.logger, tags: metricsTags }), credentials(), diff --git a/lib/api/map/preview-template-controller.js b/lib/api/map/preview-template-controller.js index e9dc547d..92d4380e 100644 --- a/lib/api/map/preview-template-controller.js +++ b/lib/api/map/preview-template-controller.js @@ -70,7 +70,6 @@ module.exports = class PreviewTemplateController { metrics({ enabled: this.config.pubSubMetrics.enabled, metricsBackend: this.metricsBackend, - logger: global.logger, tags: metricsTags }), credentials(), @@ -337,17 +336,13 @@ function setContentTypeHeader () { }; } -function incrementMapViewsError (ctx) { - return `ERROR: failed to increment mapview count for user '${ctx.user}': ${ctx.err}`; -} - function incrementMapViews ({ metadataBackend }) { return function incrementMapViewsMiddleware (req, res, next) { - const { user, mapConfigProvider } = res.locals; + const { user, mapConfigProvider, logger } = res.locals; mapConfigProvider.getMapConfig((err, mapConfig) => { if (err) { - global.logger.info(incrementMapViewsError({ user, err })); + logger.warn(err, `ERROR: failed to increment mapview count for user '${user}'`); return next(); } @@ -359,7 +354,7 @@ function incrementMapViews ({ metadataBackend }) { metadataBackend.incMapviewCount(user, statTag, (err) => { if (err) { - global.logger.info(incrementMapViewsError({ user, err })); + logger.warn(err, `ERROR: failed to increment mapview count for user '${user}'`); } next(); diff --git a/lib/api/middlewares/cache-channel-header.js b/lib/api/middlewares/cache-channel-header.js index c93cce57..66486392 100644 --- a/lib/api/middlewares/cache-channel-header.js +++ b/lib/api/middlewares/cache-channel-header.js @@ -6,11 +6,11 @@ module.exports = function setCacheChannelHeader () { return next(); } - const { mapConfigProvider } = res.locals; + const { mapConfigProvider, logger } = res.locals; mapConfigProvider.getAffectedTables((err, affectedTables) => { if (err) { - global.logger.warn(err, 'ERROR generating Cache Channel Header'); + logger.warn(err, 'ERROR generating Cache Channel Header'); return next(); } diff --git a/lib/api/middlewares/cache-control-header.js b/lib/api/middlewares/cache-control-header.js index 7afed19f..18ec7728 100644 --- a/lib/api/middlewares/cache-control-header.js +++ b/lib/api/middlewares/cache-control-header.js @@ -40,11 +40,11 @@ module.exports = function setCacheControlHeader ({ return next(); } - const { mapConfigProvider = { getAffectedTables: callback => callback() } } = res.locals; + const { mapConfigProvider = { getAffectedTables: callback => callback() }, logger } = res.locals; mapConfigProvider.getAffectedTables((err, affectedTables) => { if (err) { - global.logger.warn(err, 'ERROR generating Cache Control Header'); + logger.warn(err, 'ERROR generating Cache Control Header'); return next(); } diff --git a/lib/api/middlewares/increment-map-view-count.js b/lib/api/middlewares/increment-map-view-count.js index 7617375f..1b71e8e3 100644 --- a/lib/api/middlewares/increment-map-view-count.js +++ b/lib/api/middlewares/increment-map-view-count.js @@ -2,7 +2,7 @@ module.exports = function incrementMapViewCount (metadataBackend) { return function incrementMapViewCountMiddleware (req, res, next) { - const { mapConfig, user } = res.locals; + const { mapConfig, user, logger } = res.locals; const statTag = mapConfig.obj().stat_tag; if (statTag) { @@ -14,7 +14,7 @@ module.exports = function incrementMapViewCount (metadataBackend) { req.profiler.done('incMapviewCount'); if (err) { - global.logger.warn(err, `ERROR: failed to increment mapview count for user '${user}'`); + logger.warn(err, `ERROR: failed to increment mapview count for user '${user}'`); } next(); diff --git a/lib/api/middlewares/last-modified-header.js b/lib/api/middlewares/last-modified-header.js index 8f1dd296..b68d7c31 100644 --- a/lib/api/middlewares/last-modified-header.js +++ b/lib/api/middlewares/last-modified-header.js @@ -6,7 +6,7 @@ module.exports = function setLastModifiedHeader () { return next(); } - const { mapConfigProvider, cache_buster: cacheBuster } = res.locals; + const { mapConfigProvider, cache_buster: cacheBuster, logger } = res.locals; if (cacheBuster) { const cacheBusterTimestamp = parseInt(cacheBuster, 10); @@ -21,7 +21,7 @@ module.exports = function setLastModifiedHeader () { mapConfigProvider.getAffectedTables((err, affectedTables) => { if (err) { - global.logger.warn(err, 'ERROR generating Last Modified Header'); + logger.warn(err, 'ERROR generating Last Modified Header'); return next(); } diff --git a/lib/api/middlewares/logger.js b/lib/api/middlewares/logger.js index acebdb88..f709383a 100644 --- a/lib/api/middlewares/logger.js +++ b/lib/api/middlewares/logger.js @@ -5,10 +5,10 @@ const uuid = require('uuid'); module.exports = function logger () { return function loggerMiddleware (req, res, next) { const id = req.get('X-Request-Id') || uuid.v4(); - res.locals.logger = global.logger.child({ id }); + const logger = res.locals.logger = global.logger.child({ id }); - res.locals.logger.info(req); - res.on('finish', () => res.locals.logger.info(res)); + logger.info(req); + res.on('finish', () => logger.info(res)); next(); }; diff --git a/lib/api/middlewares/metrics.js b/lib/api/middlewares/metrics.js index 4ac0ebf6..60478557 100644 --- a/lib/api/middlewares/metrics.js +++ b/lib/api/middlewares/metrics.js @@ -3,7 +3,7 @@ const EVENT_VERSION = '1'; const MAX_LENGTH = 100; -module.exports = function metrics ({ enabled, tags, metricsBackend, logger }) { +module.exports = function metrics ({ enabled, tags, metricsBackend }) { if (!enabled) { return function metricsDisabledMiddleware (req, res, next) { next(); @@ -15,6 +15,8 @@ module.exports = function metrics ({ enabled, tags, metricsBackend, logger }) { } return function metricsMiddleware (req, res, next) { + const { logger } = res.locals; + res.on('finish', () => { const { event, attributes } = getEventData(req, res, tags); diff --git a/lib/api/middlewares/surrogate-key-header.js b/lib/api/middlewares/surrogate-key-header.js index a3b1e039..c1415038 100644 --- a/lib/api/middlewares/surrogate-key-header.js +++ b/lib/api/middlewares/surrogate-key-header.js @@ -5,7 +5,7 @@ const NamedMapMapConfigProvider = require('../../models/mapconfig/provider/named module.exports = function setSurrogateKeyHeader ({ surrogateKeysCache }) { return function setSurrogateKeyHeaderMiddleware (req, res, next) { - const { user, mapConfigProvider } = res.locals; + const { user, mapConfigProvider, logger } = res.locals; if (mapConfigProvider instanceof NamedMapMapConfigProvider) { surrogateKeysCache.tag(res, new NamedMapsCacheEntry(user, mapConfigProvider.getTemplateName())); @@ -17,7 +17,7 @@ module.exports = function setSurrogateKeyHeader ({ surrogateKeysCache }) { mapConfigProvider.getAffectedTables((err, affectedTables) => { if (err) { - global.logger.warn(err, 'ERROR generating Surrogate Key Header'); + logger.warn(err, 'ERROR generating Surrogate Key Header'); return next(); } diff --git a/lib/api/template/named-template-controller.js b/lib/api/template/named-template-controller.js index 88270b89..79b39d7c 100644 --- a/lib/api/template/named-template-controller.js +++ b/lib/api/template/named-template-controller.js @@ -93,7 +93,6 @@ module.exports = class NamedMapController { metrics({ enabled: this.config.pubSubMetrics.enabled, metricsBackend: this.metricsBackend, - logger: global.logger, tags: metricsTags }), credentials(),