From ba6f75984e5d641e6de6982ad8113f130b438f2d Mon Sep 17 00:00:00 2001 From: Tankred Hase Date: Fri, 18 Aug 2017 18:04:43 +0800 Subject: [PATCH] Integrate winston-papertrail plugin --- config/default.js | 5 +++++ index.js | 2 ++ package.json | 3 ++- src/dao/papertrail.js | 36 ++++++++++++++++++++++++++++++++++++ 4 files changed, 45 insertions(+), 1 deletion(-) create mode 100644 src/dao/papertrail.js diff --git a/config/default.js b/config/default.js index f9559ae..dc433ec 100644 --- a/config/default.js +++ b/config/default.js @@ -6,6 +6,11 @@ module.exports = { level: process.env.LOG_LEVEL || 'silly' }, + papertrail: { + host: process.env.PAPERTRAIL_HOST, + port: process.env.PAPERTRAIL_PORT + }, + server: { port: process.env.PORT || 8888, httpsUpgrade: process.env.HTTPS_UPGRADE, diff --git a/index.js b/index.js index 33fa395..12cdf53 100644 --- a/index.js +++ b/index.js @@ -21,8 +21,10 @@ const cluster = require('cluster'); const numCPUs = require('os').cpus().length; const config = require('config'); const log = require('winston'); +const papertrail = require('./src/dao/papertrail'); log.level = config.log.level; +papertrail.init(config.papertrail); // // Start worker cluster depending on number of CPUs diff --git a/package.json b/package.json index 0deb600..5c7550f 100644 --- a/package.json +++ b/package.json @@ -30,7 +30,8 @@ "nodemailer": "^2.4.2", "nodemailer-openpgp": "^1.0.2", "openpgp": "^2.3.0", - "winston": "^2.3.1" + "winston": "^2.3.1", + "winston-papertrail": "^1.0.5" }, "devDependencies": { "chai": "^4.1.1", diff --git a/src/dao/papertrail.js b/src/dao/papertrail.js new file mode 100644 index 0000000..e41034c --- /dev/null +++ b/src/dao/papertrail.js @@ -0,0 +1,36 @@ +/** + * Mailvelope - secure email with OpenPGP encryption for Webmail + * Copyright (C) 2016 Mailvelope GmbH + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License version 3 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +'use strict'; + +const log = require('winston'); +const config = require('config'); +require('winston-papertrail'); + +log.exitOnError = false; +log.level = config.log.level; + +exports.init = function({host, port}) { + if (!host || !port) { + return; + } + log.add(log.transports.Papertrail, { + level: config.log.level, + host, + port + }); +};