galactic-bot/archive/LoggerClient.js

60 lines
1.5 KiB
JavaScript
Raw Permalink Normal View History

/* eslint-disable max-len */
const chalk = require('chalk');
const { inspect } = require('util');
class Logger
{
constructor (client)
{
this.client = client;
this.name = (client.name || client.constructor.name).toUpperCase();
}
async transport (message = 'N/A', opts = {})
{
if (typeof message !== 'string')
message = inspect(message);
message = `${chalk.bold(`[${this.name.substring(0, 6)}]`)} ${message}`;
// eslint-disable-next-line no-console, no-process-exit
if (!process.send || !process.connected)
process.exit(); // Child-process disconnected for some reason //console.log(message);
else
process.send({ _logger: true, message, ...opts });
// return this.client.intercom.send('logger', { message, ...opts });
}
/* Quick & Dirty Functions */
warn (message, opts = {})
{
this.transport(message, { ...opts, type: 'warn' });
}
error (message, opts = {})
{
this.transport(message, { ...opts, type: 'error' });
}
debug (message, opts = {})
{
this.transport(message, { ...opts, type: 'debug' });
}
info (message, opts = {})
{
this.transport(message, { ...opts, type: 'info' });
}
status (message, opts = {})
{
this.transport(message, { ...opts, type: 'status' });
}
}
export default Logger;