From 74515a5fc02d3b527d9271810a217ed9fa186285 Mon Sep 17 00:00:00 2001 From: Skillz Date: Sun, 9 Feb 2020 17:50:03 -0500 Subject: [PATCH] implement a logger system functions --- module/Client.ts | 14 +++++++------- utils/logger.ts | 32 ++++++++++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 7 deletions(-) create mode 100644 utils/logger.ts diff --git a/module/Client.ts b/module/Client.ts index e902d4f6f..8f1dbe93c 100644 --- a/module/Client.ts +++ b/module/Client.ts @@ -12,8 +12,8 @@ import { // import { encode } from "https://deno.land/std/strings/mod.ts" // import { BufReader } from "https://deno.land/std/io/bufio.ts" // import { TextProtoReader } from "https://deno.land/std/textproto/mod.ts" -import { blue, green, red, yellow } from "https://deno.land/std/fmt/colors.ts" import { keepDiscordWebsocketAlive, updatePreviousSequenceNumber } from "./websocket.ts"; +import { logGreen, logRed, logYellow, logBlue } from "../utils/logger.ts"; class Client { /** The bot's token. This should never be used by end users. It is meant to be used internally to make requests to the Discord API. */ @@ -37,7 +37,7 @@ class Client { // Open a WS with the url from discord. const sock = await connectWebSocket(data.url); console.log(sock) - console.log(green("ws connected! (type 'close' to quit)")); + logGreen("ws connected! (type 'close' to quit)"); for await (const msg of sock.receive()) { if (typeof msg === "string") { @@ -45,15 +45,15 @@ class Client { const json = JSON.parse(msg) this.handleDiscordPayload(json, sock) } catch { - console.log(red(`Invalid JSON String send by discord: ${msg}`)) + logRed(`Invalid JSON String send by discord: ${msg}`) } - console.log(yellow("< " + msg)); + logYellow("< " + msg); } else if (isWebSocketPingEvent(msg)) { - console.log(blue("< ping")); + logBlue("< ping"); } else if (isWebSocketPongEvent(msg)) { - console.log(blue("< pong")); + logBlue("< pong"); } else if (isWebSocketCloseEvent(msg)) { - console.log(red(`closed: code=${msg.code}, reason=${msg.reason}`)); + logRed(`closed: code=${msg.code}, reason=${msg.reason}`); } } diff --git a/utils/logger.ts b/utils/logger.ts new file mode 100644 index 000000000..2fe507566 --- /dev/null +++ b/utils/logger.ts @@ -0,0 +1,32 @@ +import { blue, green, red, yellow } from "https://deno.land/std/fmt/colors.ts" + +export const getTime = () => { + const now = new Date() + const hours = now.getHours() + const minute = now.getMinutes() + + let hour = hours + let amOrPm = `AM` + if (hour > 12) { + amOrPm = `PM` + hour = hour - 12 + } + + return `${hour >= 10 ? hour : `0${hour}`}:${minute >= 10 ? minute : `0${minute}`} ${amOrPm}` +} + +export const logGreen = (text: string) => { + console.log(green(`[${getTime()}] => ${text}`)) +} + +export const logBlue = (text: string) => { + console.log(blue(`[${getTime()}] => ${text}`)) +} + +export const logRed = (text: string) => { + console.log(red(`[${getTime()}] => ${text}`)) +} + +export const logYellow = (text: string) => { + console.log(yellow(`[${getTime()}] => ${text}`)) +}