From 05e67d6206669b4a17e786038b1923e79bacb196 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Thu, 22 Mar 2018 11:32:43 +0100 Subject: [PATCH] Add logging for emails --- server/helpers/logger.ts | 30 +++++++++++++++++++++++++++++- server/lib/emailer.ts | 4 +++- support/doc/tools.md | 21 +++++++++++---------- 3 files changed, 43 insertions(+), 12 deletions(-) diff --git a/server/helpers/logger.ts b/server/helpers/logger.ts index e0b904950..7968b5ec9 100644 --- a/server/helpers/logger.ts +++ b/server/helpers/logger.ts @@ -73,11 +73,39 @@ const logger = new winston.createLogger({ exitOnError: true }) +function bunyanLogFactory (level: string) { + return function () { + let meta = null + let args = [].concat(arguments) + + if (arguments[ 0 ] instanceof Error) { + meta = arguments[ 0 ].toString() + args = Array.prototype.slice.call(arguments, 1) + args.push(meta) + } else if (typeof (args[ 0 ]) !== 'string') { + meta = arguments[ 0 ] + args = Array.prototype.slice.call(arguments, 1) + args.push(meta) + } + + logger[ level ].apply(logger, args) + } +} +const bunyanLogger = { + trace: bunyanLogFactory('debug'), + debug: bunyanLogFactory('debug'), + info: bunyanLogFactory('info'), + warn: bunyanLogFactory('warn'), + error: bunyanLogFactory('error'), + fatal: bunyanLogFactory('error') +} + // --------------------------------------------------------------------------- export { timestampFormatter, labelFormatter, consoleLoggerFormat, - logger + logger, + bunyanLogger } diff --git a/server/lib/emailer.ts b/server/lib/emailer.ts index bc0061c99..9c105a575 100644 --- a/server/lib/emailer.ts +++ b/server/lib/emailer.ts @@ -1,7 +1,7 @@ import { createTransport, Transporter } from 'nodemailer' import { UserRight } from '../../shared/models/users' import { isTestInstance } from '../helpers/core-utils' -import { logger } from '../helpers/logger' +import { bunyanLogger, logger } from '../helpers/logger' import { CONFIG } from '../initializers' import { UserModel } from '../models/account/user' import { VideoModel } from '../models/video/video' @@ -44,6 +44,8 @@ class Emailer { host: CONFIG.SMTP.HOSTNAME, port: CONFIG.SMTP.PORT, secure: CONFIG.SMTP.TLS, + debug: CONFIG.LOG.LEVEL === 'debug', + logger: bunyanLogger as any, ignoreTLS: isTestInstance(), tls, auth diff --git a/support/doc/tools.md b/support/doc/tools.md index 144c2bd7a..d83203369 100644 --- a/support/doc/tools.md +++ b/support/doc/tools.md @@ -11,6 +11,7 @@ You need at least 512MB RAM to run the script. Scripts can be launched directly from a PeerTube server, or from a separate server, even a desktop PC. +You need to follow all the following steps even if you are on a PeerTube server. ### Dependencies @@ -21,20 +22,20 @@ Install the [PeerTube dependencies](dependencies.md). Clone the PeerTube repo to get the latest version (even if you are on your PeerTube server): ``` -git clone https://github.com/Chocobozzz/PeerTube.git -CLONE="$(pwd)/PeerTube" +$ git clone https://github.com/Chocobozzz/PeerTube.git +$ CLONE="$(pwd)/PeerTube" ``` Run ``yarn install`` ``` -cd ${CLONE} -yarn install +$ cd ${CLONE} +$ yarn install ``` Build server tools: ``` -cd ${CLONE} -npm run build:server +$ cd ${CLONE} +$ npm run build:server ``` ## Tools @@ -46,8 +47,8 @@ Be sure you own the videos or have the author's authorization to do so. ``` -cd ${CLONE} -node dist/server/tools/import-videos.js -u "PEERTUBE_URL" -U "PEERTUBE_USER" --password "PEERTUBE_PASSWORD" -t "TARGET_URL" +$ cd ${CLONE} +$ node dist/server/tools/import-videos.js -u "PEERTUBE_URL" -U "PEERTUBE_USER" --password "PEERTUBE_PASSWORD" -t "TARGET_URL" ``` * PEERTUBE_URL : the full URL of your PeerTube server where you want to import, eg: https://peertube.cpy.re/ @@ -69,6 +70,6 @@ node dist/server/tools/import-videos.js -u "PEERTUBE_URL" -U "PEERTUBE_USER" --p You can use this script to import videos directly from the CLI. ``` -cd ${CLONE} -node dist/server/tools/upload.js --help +$ cd ${CLONE} +$ node dist/server/tools/upload.js --help ```