Last active
June 28, 2024 18:18
-
-
Save blizzardengle/8147b6e7d8ffab2709ae2f79b7006b02 to your computer and use it in GitHub Desktop.
A simple logger class that allows printing console messages in color. Designed for node.js applications but usable in supported browsers as well.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Author: Christopher Keers | Caboodle Tech | |
* License: MIT | |
* Source: https://gist.github.com/blizzardengle/8147b6e7d8ffab2709ae2f79b7006b02 | |
*/ | |
class Print { | |
#enabled = true; | |
disable() { | |
this.#enabled = false; | |
} | |
enable() { | |
this.#enabled = true; | |
} | |
error(message, override = false) { | |
if (!this.#enabled && !override) { | |
return; | |
} | |
// Red color | |
console.error(this.#formatMessage(message, '\x1b[31m')); | |
} | |
#formatMessage(message, colorCode) { | |
const resetCode = '\x1b[0m'; | |
return `${colorCode}${message}${resetCode}`; | |
} | |
info(message, override = false) { | |
if (!this.#enabled && !override) { | |
return; | |
} | |
// Cyan color | |
console.log(this.#formatMessage(message, '\x1b[36m')); | |
} | |
log(message, override = false) { | |
if (!this.#enabled && !override) { | |
return; | |
} | |
// White color | |
console.log(this.#formatMessage(message, '\x1b[37m')); | |
} | |
notice(message, override = false) { | |
if (!this.#enabled && !override) { | |
return; | |
} | |
// Blue color | |
console.log(this.#formatMessage(message, '\x1b[94m')); | |
} | |
out(message, override = false) { | |
this.print(message, override); | |
} | |
print(message, override = false) { | |
if (!this.#enabled && !override) { | |
return; | |
} | |
console.log(message); | |
} | |
success(message, override = false) { | |
if (!this.#enabled && !override) { | |
return; | |
} | |
// Green color | |
console.log(this.#formatMessage(message, '\x1b[32m')); | |
} | |
warn(message, override = false) { | |
if (!this.#enabled && !override) { | |
return; | |
} | |
// Yellow color | |
console.warn(this.#formatMessage(message, '\x1b[33m')); | |
} | |
} | |
const printer = new Print(); | |
export default printer; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment