webhook for errors
This commit is contained in:
parent
e992a70e6c
commit
809582841e
@ -3,8 +3,11 @@ const chalk = require('chalk');
|
|||||||
const moment = require('moment');
|
const moment = require('moment');
|
||||||
const path = require('path');
|
const path = require('path');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
|
const { WebhookClient } = require('discord.js');
|
||||||
|
const os = require('os');
|
||||||
|
const { username } = os.userInfo();
|
||||||
|
|
||||||
const Util = require('../Util.js');
|
const { Util } = require('../utilities');
|
||||||
|
|
||||||
const Constants = {
|
const Constants = {
|
||||||
Types: [
|
Types: [
|
||||||
@ -32,6 +35,8 @@ class Logger {
|
|||||||
this.manager = manager;
|
this.manager = manager;
|
||||||
this.shardingManager = manager.shardingManager;
|
this.shardingManager = manager.shardingManager;
|
||||||
|
|
||||||
|
this._webhook = new WebhookClient({ url: process.env.ERROR_WEBHOOK_URL });
|
||||||
|
|
||||||
this._options = options;
|
this._options = options;
|
||||||
|
|
||||||
this._writeStream = this._loadFile();
|
this._writeStream = this._loadFile();
|
||||||
@ -56,17 +61,34 @@ class Logger {
|
|||||||
const maximumCharacters = Math.max(...Constants.Types.map((t) => t.length));
|
const maximumCharacters = Math.max(...Constants.Types.map((t) => t.length));
|
||||||
const spacers = maximumCharacters - type.length;
|
const spacers = maximumCharacters - type.length;
|
||||||
const text = `${chalk[color](type)}${" ".repeat(spacers)} ${header} : ${string}`;
|
const text = `${chalk[color](type)}${" ".repeat(spacers)} ${header} : ${string}`;
|
||||||
|
const strippedText = text.replace(stripRegex, '');
|
||||||
|
|
||||||
console.log(text); //eslint-disable-line no-console
|
console.log(text); //eslint-disable-line no-console
|
||||||
|
if (type === 'error') this.webhook(strippedText);
|
||||||
|
|
||||||
if(this[type === 'error' ? '_errorWriteStream' : '_writeStream']) {
|
const stream = type === 'error' ? '_errorWriteStream' : '_writeStream';
|
||||||
const strippedText = text.replace(stripRegex, '');
|
if(this[stream]) {
|
||||||
this[type === 'error' ? '_errorWriteStream' : '_writeStream']
|
this[stream]
|
||||||
.write(`\n${strippedText}`);
|
.write(`\n${strippedText}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
webhook(text) {
|
||||||
|
|
||||||
|
const message = text.replace(new RegExp(process.env.DISCORD_TOKEN, 'gu'), '<redacted>')
|
||||||
|
.replace(new RegExp(username, 'gu'), '<redacted>');
|
||||||
|
|
||||||
|
const embed = {
|
||||||
|
color: 0xe88388,
|
||||||
|
timestamp: new Date(),
|
||||||
|
description: `\`\`\`${message}\`\`\``,
|
||||||
|
};
|
||||||
|
|
||||||
|
this._webhook.send({ embeds: [embed], username: `ENV: ${process.env.NODE_ENV}` });
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
_loadFile(type = null) {
|
_loadFile(type = null) {
|
||||||
const filename = `${moment().format('YYYY-MM-DD')}${type ? `-${type}` : ''}`;
|
const filename = `${moment().format('YYYY-MM-DD')}${type ? `-${type}` : ''}`;
|
||||||
const directory = path.join(process.cwd(), this._options.directory);
|
const directory = path.join(process.cwd(), this._options.directory);
|
||||||
|
Loading…
Reference in New Issue
Block a user