Skip to content

Commit

Permalink
feat: err out
Browse files Browse the repository at this point in the history
  • Loading branch information
Fyrlex committed Nov 23, 2024
1 parent 5a3a56a commit c7392ae
Showing 1 changed file with 31 additions and 9 deletions.
40 changes: 31 additions & 9 deletions src/loggage/loggage.ts
Original file line number Diff line number Diff line change
Expand Up @@ -23,11 +23,13 @@ export class Loggage {

this.console = new Console({
stdout: process.stdout,
stderr: process.stderr,
});

if (save) {
this.file = new Console({
stdout: createWriteStream(`./logs/${name} ${timestamp}.log`),
stderr: createWriteStream(`./logs/${name} ${timestamp}.err.log`),
});
}
}
Expand Down Expand Up @@ -67,48 +69,68 @@ export class Loggage {

public fatal_error(message: unknown): void {
if (this.verbosity >= Verbosity.FATAL_ERROR) {
this.log(Loggage.TAGS.FATAL_ERROR, message);
this.log(Loggage.TAGS.FATAL_ERROR, message, true);
}
}

public error(message: unknown): void {
if (this.verbosity >= Verbosity.ERROR) {
this.log(Loggage.TAGS.ERROR, message);
this.log(Loggage.TAGS.ERROR, message, true);
}
}

public warning(message: unknown): void {
if (this.verbosity >= Verbosity.WARNING) {
this.log(Loggage.TAGS.WARNING, message);
this.log(Loggage.TAGS.WARNING, message, false);
}
}

public info(message: unknown): void {
if (this.verbosity >= Verbosity.INFO) {
this.log(Loggage.TAGS.INFO, message);
this.log(Loggage.TAGS.INFO, message, false);
}
}

public debug(message: unknown): void {
if (this.verbosity >= Verbosity.DEBUG) {
this.log(Loggage.TAGS.DEBUG, message);
this.log(Loggage.TAGS.DEBUG, message, false);
}
}

public verbose(message: unknown): void {
if (this.verbosity >= Verbosity.VERBOSE) {
this.log(Loggage.TAGS.VERBOSE, message);
this.log(Loggage.TAGS.VERBOSE, message, false);
}
}

private log(tag: string, message: unknown): void {
const log = `${S.reset(C.green(new Date().toLocaleTimeString()))} ${this.name} ${tag}`;
private log(tag: string, message: unknown, err: boolean): void {
const log = this.formatLogMessage(tag);

this.console.log(log, message);
if (err) {
this.logError(log, message);
} else {
this.logMessage(log, message);
}
}

private formatLogMessage(tag: string): string {
return `${S.reset(C.green(new Date().toLocaleTimeString()))} ${this.name} ${tag}`;
}

private logError(log: string, message: unknown): void {
if (this.save && this.file) {
this.file.error(log, message);
}

this.console.error(log, message);
}

private logMessage(log: string, message: unknown): void {
if (this.save && this.file) {
this.file.log(log, message);
}

this.console.log(log, message);
}

/**
Expand Down

0 comments on commit c7392ae

Please sign in to comment.