Skip to content

Commit 3b1eda3

Browse files
committed
feat: Logger class
1 parent d85b030 commit 3b1eda3

27 files changed

+88
-29
lines changed

src/handlers/AutocompleteHandler.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { AutocompleteInteraction } from 'discord.js';
22
import { AutocompleteContext } from '../lib/structures/contexts/AutocompleteContext';
33
import type { Argument } from '../lib/structures/Argument';
44
import { Commands } from '../lib/managers/CommandManager';
5-
import Logger from 'js-logger';
5+
import { Logger } from '../lib/structures/Logger';
66
import type { GClient } from '../lib/GClient';
77

88
export async function AutocompleteHandler(interaction: AutocompleteInteraction) {

src/handlers/ComponentHandler.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { ComponentContext } from '../lib/structures/contexts/ComponentContext';
55
import { Components } from '../lib/managers/ComponentManager';
66
import { Handlers } from '../lib/managers/HandlerManager';
77
import { setTimeout } from 'node:timers';
8-
import Logger from 'js-logger';
8+
import { Logger } from '../lib/structures/Logger';
99

1010
const cooldowns = new Collection<string, Collection<string, number>>();
1111

src/handlers/InteractionCommandHandler.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import { CommandContext } from '../lib/structures/contexts/CommandContext';
44
import { Handlers } from '../lib/managers/HandlerManager';
55
import { Commands } from '../lib/managers/CommandManager';
66
import { setTimeout } from 'node:timers';
7-
import Logger from 'js-logger';
7+
import { Logger } from '../lib/structures/Logger';
88

99
const cooldowns = new Collection<string, Collection<string, number>>();
1010

src/handlers/MessageCommandHandler.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { CommandType } from '../lib/structures/Command';
55
import { ArgumentType } from '../lib/structures/Argument';
66
import { Commands } from '../lib/managers/CommandManager';
77
import { Handlers } from '../lib/managers/HandlerManager';
8-
import Logger from 'js-logger';
8+
import { Logger } from '../lib/structures/Logger';
99

1010
const cooldowns = new Collection<string, Collection<string, number>>();
1111

src/index.ts

+3-4
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import Logger from 'js-logger';
21
// Listeners
32
import './listeners/Ready';
43
import './listeners/InteractionCommandHandler';
@@ -29,7 +28,7 @@ export { Listeners, ListenerManager } from './lib/managers/ListenerManager';
2928
export { Handlers, HandlerManager } from './lib/managers/HandlerManager';
3029

3130
// Logger
32-
Logger.useDefaults({
31+
/*Logger.useDefaults({
3332
defaultLevel: Logger.TRACE,
3433
formatter: function (messages: any, ctx) {
3534
let color;
@@ -45,8 +44,8 @@ Logger.useDefaults({
4544
messages[0]
4645
}`;
4746
},
48-
});
49-
export { Logger };
47+
});*/
48+
export { Logger, LoggerClass } from './lib/structures/Logger';
5049

5150
// Inhibitors
5251
export * as Inhibitor from './inhibitors';

src/lib/managers/CommandManager.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Collection } from 'discord.js';
22
import { Command } from '../structures/Command';
33
import type { GClient } from '../GClient';
4-
import Logger from 'js-logger';
4+
import { Logger } from '../structures/Logger';
55
import { Plugins } from './PluginManager';
66

77
export class CommandManager extends Collection<string, Command> {

src/lib/managers/ComponentManager.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Collection } from 'discord.js';
22
import { Component } from '../structures/Component';
33
import type { GClient } from '../GClient';
4-
import Logger from 'js-logger';
4+
import { Logger } from '../structures/Logger';
55
import { Plugins } from './PluginManager';
66

77
export class ComponentManager extends Collection<string, Component> {

src/lib/managers/ListenerManager.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { GClient } from '../GClient';
22
import { Listener } from '../structures/Listener';
33
import { ClientEvents, Collection, WSEventType } from 'discord.js';
4-
import Logger from 'js-logger';
4+
import { Logger } from '../structures/Logger';
55
import { Plugins } from './PluginManager';
66

77
export class ListenerManager extends Collection<string, Listener> {

src/lib/managers/PluginManager.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Collection } from 'discord.js';
22
import { Plugin } from '../structures/Plugin';
33
import type { GClient } from '../GClient';
44
import { pluginFinder } from '../loaders/pluginFinder';
5-
import Logger from 'js-logger';
5+
import { Logger } from '../structures/Logger';
66

77
export class PluginManager extends Collection<string, Plugin> {
88
private client: GClient;

src/lib/structures/Argument.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { Command } from './Command';
22
import type { AutocompleteContext } from './contexts/AutocompleteContext';
3-
import Logger from 'js-logger';
3+
import { Logger } from './Logger';
44
import { Util } from '../util/Util';
55
import type { ApplicationCommandOptionType } from 'discord-api-types';
66

src/lib/structures/Command.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { AutoDeferType, GClient } from '../GClient';
22
import { Argument } from './Argument';
33
import type { CommandContext } from './contexts/CommandContext';
44
import { Commands } from '../managers/CommandManager';
5-
import Logger from 'js-logger';
5+
import { Logger } from './Logger';
66
import { Util } from '../util/Util';
77

88
export enum CommandType {

src/lib/structures/Component.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { AutoDeferType, GClient } from '../GClient';
22
import type { ComponentContext } from './contexts/ComponentContext';
33
import { Components } from '../managers/ComponentManager';
4-
import Logger from 'js-logger';
4+
import { Logger } from './Logger';
55
import { Util } from '../util/Util';
66

77
export enum ComponentType {

src/lib/structures/Listener.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import type { GClient } from '../GClient';
22
import type { ClientEvents, WSEventType } from 'discord.js';
33
import { Listeners } from '../managers/ListenerManager';
4-
import Logger from 'js-logger';
4+
import { Logger } from './Logger';
55
import { Util } from '../util/Util';
66

77
export interface ListenerOptions<

src/lib/structures/Logger.ts

+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/* eslint-disable @typescript-eslint/no-unused-vars, @typescript-eslint/no-empty-function */
2+
3+
import EventEmitter from 'events';
4+
import JSLogger, { ILogger, ILoggerOpts, ILogHandler, ILogLevel } from 'js-logger';
5+
import type { GlobalLogger } from 'js-logger';
6+
7+
export class LoggerClass extends EventEmitter implements GlobalLogger {
8+
TRACE: ILogLevel;
9+
DEBUG: ILogLevel;
10+
INFO: ILogLevel;
11+
TIME: ILogLevel;
12+
WARN: ILogLevel;
13+
ERROR: ILogLevel;
14+
OFF: ILogLevel;
15+
16+
constructor() {
17+
super();
18+
19+
JSLogger.useDefaults({
20+
defaultLevel: JSLogger.TRACE,
21+
formatter: function (messages: any, ctx) {
22+
let color;
23+
if (ctx.level === JSLogger.TRACE) color = '\x1b[91m';
24+
if (ctx.level === JSLogger.DEBUG) color = '\x1b[2m';
25+
if (ctx.level === JSLogger.INFO) color = '\x1b[36m';
26+
if (ctx.level === JSLogger.TIME) color = '\x1b[97m';
27+
if (ctx.level === JSLogger.WARN) color = '\x1b[93m';
28+
if (ctx.level === JSLogger.ERROR) color = '\x1b[91m';
29+
30+
const date = new Date();
31+
messages[0] = `${color}[${date.getHours()}:${date.getMinutes()}:${date.getSeconds()}/${ctx.level.name}]\x1b[0m ${
32+
messages[0]
33+
}`;
34+
},
35+
});
36+
37+
Object.assign(this, JSLogger);
38+
}
39+
40+
// Only typings, Object.assign goes brooooo
41+
useDefaults(options?: ILoggerOpts): void {}
42+
setHandler(logHandler: ILogHandler): void {}
43+
get(name: string): ILogger { return JSLogger.get(name); }
44+
createDefaultHandler(options?: { formatter?: ILogHandler }): ILogHandler { return JSLogger.createDefaultHandler(options); }
45+
46+
trace(...x: any[]): void {}
47+
debug(...x: any[]): void {}
48+
info(...x: any[]): void {}
49+
log(...x: any[]): void {}
50+
warn(...x: any[]): void {}
51+
error(...x: any[]): void {}
52+
time(label: string): void {}
53+
timeEnd(label: string): void {}
54+
55+
setLevel(level: ILogLevel): void {}
56+
getLevel(): ILogLevel { return JSLogger.getLevel(); }
57+
enabledFor(level: ILogLevel): boolean { return JSLogger.enabledFor(level); }
58+
}
59+
60+
export const Logger = new LoggerClass();

src/lib/structures/Plugin.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { GClient } from '../GClient';
22
import { Plugins } from '../managers/PluginManager';
3-
import Logger from 'js-logger';
3+
import { Logger } from './Logger';
44
import { Util } from '../util/Util';
55

66
export class Plugin {

src/lib/structures/Provider.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import Logger from 'js-logger';
1+
import { Logger } from './Logger';
22
import { EventEmitter } from 'events';
33
import { Util } from '../util/Util';
44

src/lib/util/sync.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import type { GClient } from '../GClient';
22
import type { Command } from '../structures/Command';
33
import { REST } from '@discordjs/rest';
44
import { Routes } from 'discord-api-types/v9';
5-
import Logger from 'js-logger';
5+
import { Logger } from '../structures/Logger';
66
import { setTimeout } from 'node:timers';
77
import { Commands } from '../managers/CommandManager';
88

src/listeners/AutocompleteHandler.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Listener } from '../lib/structures/Listener';
22
import type { Interaction } from 'discord.js';
33
import { Handlers } from '../lib/managers/HandlerManager';
4-
import Logger from 'js-logger';
4+
import { Logger } from '../lib/structures/Logger';
55

66
new Listener({
77
event: 'interactionCreate',

src/listeners/ComponentHandler.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Listener } from '../lib/structures/Listener';
22
import type { Interaction } from 'discord.js';
33
import { Handlers } from '../lib/managers/HandlerManager';
4-
import Logger from 'js-logger';
4+
import { Logger } from '../lib/structures/Logger';
55

66
new Listener({
77
event: 'interactionCreate',

src/listeners/InteractionCommandHandler.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { Listener } from '../lib/structures/Listener';
22
import type { Interaction } from 'discord.js';
33
import { Handlers } from '../lib/managers/HandlerManager';
4-
import Logger from 'js-logger';
4+
import { Logger } from '../lib/structures/Logger';
55

66
new Listener({
77
event: 'interactionCreate',

src/listeners/MessageCommandHandler.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Listener } from '../lib/structures/Listener';
22
import type { GClient } from '../lib/GClient';
33
import type { Message } from 'discord.js';
44
import { Handlers } from '../lib/managers/HandlerManager';
5-
import Logger from 'js-logger';
5+
import { Logger } from '../lib/structures/Logger';
66

77
new Listener({
88
event: 'messageCreate',

src/listeners/Ready.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import { Listener } from '../lib/structures/Listener';
22
import type { GClient } from '../lib/GClient';
33
import type { Client } from 'discord.js';
44
import { sync } from '../lib/util/sync';
5-
import Logger from 'js-logger';
5+
import { Logger } from '../lib/structures/Logger';
66

77
new Listener({
88
event: 'ready',

src/providers/FirestoreProvider.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { Firestore } from '@google-cloud/firestore';
2-
import Logger from 'js-logger';
2+
import { Logger } from '../lib/structures/Logger';
33
import { Provider, ProviderTypes } from '../lib/structures/Provider';
44

55
export class FirestoreProvider extends Provider {

src/providers/KeyvProvider.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import Logger from 'js-logger';
1+
import { Logger } from '../lib/structures/Logger';
22
import Keyv from 'keyv';
33
import { Provider, ProviderTypes } from '../lib/structures/Provider';
44

src/providers/LruCacheProvider.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import Logger from 'js-logger';
1+
import { Logger } from '../lib/structures/Logger';
22
import LruCache from 'lru-cache';
33
import { Provider, ProviderTypes } from '../lib/structures/Provider';
44

src/providers/MongoDBProvider.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import Logger from 'js-logger';
1+
import { Logger } from '../lib/structures/Logger';
22
import { Db, Document, Filter, FindOptions, MongoClient, UpdateFilter, UpdateOptions } from 'mongodb';
33
import { Provider, ProviderTypes } from '../lib/structures/Provider';
44

src/providers/PrismaIOProvider.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { PrismaClient } from '@prisma/client';
2-
import Logger from 'js-logger';
2+
import { Logger } from '../lib/structures/Logger';
33
import { Provider, ProviderTypes } from '../lib/structures/Provider';
44

55
export class PrismaIOProvider extends Provider {

0 commit comments

Comments
 (0)