From 8e4bcec80a0e2261e0b6e5b77aa9a2e73f6ffd3a Mon Sep 17 00:00:00 2001 From: Dragon Fire Date: Sun, 7 Oct 2018 21:12:07 -0400 Subject: [PATCH] Use winston --- Xiao.js | 12 ++++++------ package.json | 1 + structures/Client.js | 9 +++++++++ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/Xiao.js b/Xiao.js index 7f071fc2..0816f316 100644 --- a/Xiao.js +++ b/Xiao.js @@ -41,7 +41,7 @@ client.registry .registerCommandsIn(path.join(__dirname, 'commands')); client.on('ready', () => { - console.log(`[READY] Logged in as ${client.user.tag}! (${client.user.id})`); + client.logger.info(`[READY] Logged in as ${client.user.tag}! ID: ${client.user.id}`); client.setInterval(() => { const activity = activities[Math.floor(Math.random() * activities.length)]; client.user.setActivity(activity.text, { type: activity.type }); @@ -49,19 +49,19 @@ client.on('ready', () => { }); client.on('disconnect', event => { - console.error(`[DISCONNECT] Disconnected with code ${event.code}.`); + client.logger.error(`[DISCONNECT] Disconnected with code ${event.code}.`); process.exit(0); }); -client.on('error', err => console.error('[ERROR]', err)); +client.on('error', err => client.logger.error(err)); -client.on('warn', err => console.warn('[WARNING]', err)); +client.on('warn', warn => client.logger.warn(warn)); -client.on('commandError', (command, err) => console.error('[COMMAND ERROR]', command.name, err)); +client.on('commandError', (command, err) => client.logger.error(`[COMMAND:${command.name}]\n${err.stack}`)); client.login(XIAO_TOKEN); process.on('unhandledRejection', err => { - console.error('[FATAL] Unhandled Promise Rejection.', err); + client.logger.error(`[FATAL] UNHANDLED PROMISE REJECTION:\n${err.stack}`); process.exit(1); }); diff --git a/package.json b/package.json index 617a1f88..58646847 100644 --- a/package.json +++ b/package.json @@ -49,6 +49,7 @@ "node-opus": "^0.3.0", "node-superfetch": "^0.1.9", "random-js": "^1.0.8", + "winston": "^3.1.0", "zlib-sync": "^0.1.4" }, "devDependencies": { diff --git a/structures/Client.js b/structures/Client.js index a924caf3..fc8e3c75 100644 --- a/structures/Client.js +++ b/structures/Client.js @@ -1,5 +1,6 @@ const { CommandoClient } = require('discord.js-commando'); const { WebhookClient } = require('discord.js'); +const winston = require('winston'); const PokemonStore = require('./PokemonStore'); const { XIAO_WEBHOOK_ID, XIAO_WEBHOOK_TOKEN } = process.env; @@ -7,6 +8,14 @@ module.exports = class XiaoClient extends CommandoClient { constructor(options) { super(options); + this.logger = winston.createLogger({ + transports: [new winston.transports.Console()], + format: winston.format.combine( + winston.format.colorize({ all: true }), + winston.format.timestamp({ format: 'MM/DD/YYYY HH:mm:ss' }), + winston.format.printf(log => `[${log.timestamp}] [${log.level.toUpperCase()}]: ${log.message}`) + ) + }); this.webhook = new WebhookClient(XIAO_WEBHOOK_ID, XIAO_WEBHOOK_TOKEN, { disableEveryone: true }); this.pokemon = new PokemonStore(); }