From 2d75985cb3308e9e4ae3b632ac68d7b7b0a5bd42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Garc=C3=ADa=20Aubert?= Date: Mon, 26 Sep 2016 17:39:27 +0200 Subject: [PATCH] Recreate stream on SIGHUP event --- lib/cartodb/backends/analysis.js | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/lib/cartodb/backends/analysis.js b/lib/cartodb/backends/analysis.js index b4a16888..4ac7ba2b 100644 --- a/lib/cartodb/backends/analysis.js +++ b/lib/cartodb/backends/analysis.js @@ -19,17 +19,31 @@ AnalysisBackend.prototype.setBatchConfig = function (options) { AnalysisBackend.prototype.setLoggerConfig = function (options) { var loggerConfig = options || {}; + loggerConfig.filename = loggerConfig.filename; this.loggerConfig = loggerConfig; + + if (this.loggerConfig.filename) { + this.stream = fs.createWriteStream(this.loggerConfig.filename, { flags: 'a', encoding: 'utf8' }); + + process.on('SIGHUP', function () { + if (this.stream) { + this.stream.destroy(); + } + + this.stream = fs.createWriteStream(this.loggerConfig.filename, { flags: 'a', encoding: 'utf8' }); + }.bind(this)); + } }; AnalysisBackend.prototype.create = function(analysisConfiguration, analysisDefinition, callback) { analysisConfiguration.batch.endpoint = this.batchConfig.endpoint; analysisConfiguration.batch.inlineExecution = this.batchConfig.inlineExecution; analysisConfiguration.batch.hostHeaderTemplate = this.batchConfig.hostHeaderTemplate; + analysisConfiguration.logger = { - stream: this.loggerConfig.filename ? fs.createWriteStream(this.loggerConfig.filename) : process.stdout + stream: this.stream ? this.stream : process.stdout }; camshaft.create(analysisConfiguration, analysisDefinition, callback);