Replace log4js by pino as logger:
- Logs to stdout, disabled while testing - Change log calls signature when needed - Use development version of camshaft - Removes unused log cofiguration - Bind request id to log req/res - Log req at the begining of the cycle and res at the end
This commit is contained in:
+8
-18
@@ -83,15 +83,11 @@ module.exports = class ApiRouter {
|
||||
global.statsClient.gauge(keyPrefix + 'waiting', status.waiting);
|
||||
});
|
||||
|
||||
const windshaftLogger = environmentOptions.log_windshaft && global.log4js
|
||||
? global.log4js.getLogger('[windshaft]')
|
||||
: null;
|
||||
|
||||
const { rendererCache, tileBackend, attributesBackend, previewBackend, mapBackend, mapStore } = windshaftFactory({
|
||||
rendererOptions: serverOptions,
|
||||
redisPool,
|
||||
onTileErrorStrategy: getOnTileErrorStrategy({ enabled: environmentOptions.enabledFeatures.onTileErrorStrategy }),
|
||||
logger: windshaftLogger
|
||||
logger: global.logger
|
||||
});
|
||||
|
||||
const rendererStatsReporter = new RendererStatsReporter(rendererCache, serverOptions.renderCache.statsInterval);
|
||||
@@ -205,7 +201,7 @@ module.exports = class ApiRouter {
|
||||
|
||||
middlewares.forEach(middleware => apiRouter.use(middleware()));
|
||||
|
||||
apiRouter.use(logger(this.serverOptions));
|
||||
apiRouter.use(logger());
|
||||
apiRouter.use(initializeStatusCode());
|
||||
apiRouter.use(bodyParser.json());
|
||||
apiRouter.use(servedByHostHeader());
|
||||
@@ -235,20 +231,14 @@ function createTemplateMaps ({ redisPool, surrogateKeysCache }) {
|
||||
max_user_templates: global.environment.maxUserTemplates
|
||||
});
|
||||
|
||||
function invalidateNamedMap (owner, templateName) {
|
||||
var startTime = Date.now();
|
||||
surrogateKeysCache.invalidate(new NamedMapsCacheEntry(owner, templateName), function (err) {
|
||||
var logMessage = JSON.stringify({
|
||||
username: owner,
|
||||
type: 'named_map_invalidation',
|
||||
elapsed: Date.now() - startTime,
|
||||
error: err ? JSON.stringify(err.message) : undefined
|
||||
});
|
||||
function invalidateNamedMap (user, templateName) {
|
||||
const startTime = Date.now();
|
||||
surrogateKeysCache.invalidate(new NamedMapsCacheEntry(user, templateName), (err) => {
|
||||
if (err) {
|
||||
global.logger.warn(logMessage);
|
||||
} else {
|
||||
global.logger.info(logMessage);
|
||||
return global.logger.error(err);
|
||||
}
|
||||
|
||||
global.logger.info({ user, type: 'named_map_invalidation', elapsed: Date.now() - startTime });
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -347,7 +347,7 @@ function incrementMapViews ({ metadataBackend }) {
|
||||
|
||||
mapConfigProvider.getMapConfig((err, mapConfig) => {
|
||||
if (err) {
|
||||
global.logger.log(incrementMapViewsError({ user, err }));
|
||||
global.logger.info(incrementMapViewsError({ user, err }));
|
||||
return next();
|
||||
}
|
||||
|
||||
@@ -359,7 +359,7 @@ function incrementMapViews ({ metadataBackend }) {
|
||||
|
||||
metadataBackend.incMapviewCount(user, statTag, (err) => {
|
||||
if (err) {
|
||||
global.logger.log(incrementMapViewsError({ user, err }));
|
||||
global.logger.info(incrementMapViewsError({ user, err }));
|
||||
}
|
||||
|
||||
next();
|
||||
|
||||
@@ -10,7 +10,7 @@ module.exports = function setCacheChannelHeader () {
|
||||
|
||||
mapConfigProvider.getAffectedTables((err, affectedTables) => {
|
||||
if (err) {
|
||||
global.logger.warn('ERROR generating Cache Channel Header:', err);
|
||||
global.logger.warn(err, 'ERROR generating Cache Channel Header');
|
||||
return next();
|
||||
}
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ module.exports = function setCacheControlHeader ({
|
||||
|
||||
mapConfigProvider.getAffectedTables((err, affectedTables) => {
|
||||
if (err) {
|
||||
global.logger.warn('ERROR generating Cache Control Header:', err);
|
||||
global.logger.warn(err, 'ERROR generating Cache Control Header');
|
||||
return next();
|
||||
}
|
||||
|
||||
|
||||
@@ -14,7 +14,7 @@ module.exports = function incrementMapViewCount (metadataBackend) {
|
||||
req.profiler.done('incMapviewCount');
|
||||
|
||||
if (err) {
|
||||
global.logger.log(`ERROR: failed to increment mapview count for user '${user}': ${err.message}`);
|
||||
global.logger.warn(err, `ERROR: failed to increment mapview count for user '${user}'`);
|
||||
}
|
||||
|
||||
next();
|
||||
|
||||
@@ -21,7 +21,7 @@ module.exports = function setLastModifiedHeader () {
|
||||
|
||||
mapConfigProvider.getAffectedTables((err, affectedTables) => {
|
||||
if (err) {
|
||||
global.logger.warn('ERROR generating Last Modified Header:', err);
|
||||
global.logger.warn(err, 'ERROR generating Last Modified Header');
|
||||
return next();
|
||||
}
|
||||
|
||||
|
||||
@@ -1,24 +1,15 @@
|
||||
'use strict';
|
||||
|
||||
module.exports = function logger (options) {
|
||||
if (!global.log4js || !options.log_format) {
|
||||
return function dummyLoggerMiddleware (req, res, next) {
|
||||
next();
|
||||
};
|
||||
}
|
||||
const uuid = require('uuid');
|
||||
|
||||
const opts = {
|
||||
level: 'info',
|
||||
// Allowing for unbuffered logging is mainly
|
||||
// used to avoid hanging during unit testing.
|
||||
// TODO: provide an explicit teardown function instead,
|
||||
// releasing any event handler or timer set by
|
||||
// this component.
|
||||
buffer: !options.unbuffered_logging,
|
||||
// optional log format
|
||||
format: options.log_format
|
||||
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 });
|
||||
|
||||
res.locals.logger.info(req);
|
||||
res.on('finish', () => res.locals.logger.info(res));
|
||||
|
||||
next();
|
||||
};
|
||||
const logger = global.log4js.getLogger();
|
||||
|
||||
return global.log4js.connectLogger(logger, opts);
|
||||
};
|
||||
|
||||
@@ -19,7 +19,7 @@ module.exports = function metrics ({ enabled, tags, metricsBackend, logger }) {
|
||||
const { event, attributes } = getEventData(req, res, tags);
|
||||
|
||||
metricsBackend.send(event, attributes)
|
||||
.catch((error) => logger.error(`Failed to publish event "${event}": ${error.message}`));
|
||||
.catch((err) => logger.error(err, `Failed to publish event "${event}"`));
|
||||
});
|
||||
|
||||
return next();
|
||||
|
||||
@@ -17,7 +17,7 @@ module.exports = function setSurrogateKeyHeader ({ surrogateKeysCache }) {
|
||||
|
||||
mapConfigProvider.getAffectedTables((err, affectedTables) => {
|
||||
if (err) {
|
||||
global.logger.warn('ERROR generating Surrogate Key Header:', err);
|
||||
global.logger.warn(err, 'ERROR generating Surrogate Key Header');
|
||||
return next();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user