Files
Curse/src/misc/logger.ts
Aya Morisawa d12d201ef4 Update logger
2018-07-14 22:14:56 +09:00

54 lines
1.4 KiB
TypeScript
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
import chalk from 'chalk';
import * as dateformat from 'dateformat';
export default class Logger {
private domain: string;
constructor(domain: string) {
this.domain = domain;
}
public static log(level: string, message: string): void {
const time = dateformat(new Date(), 'HH:MM:ss');
console.log(`[${time} ${level}] ${message}`);
}
public static error(message: string): void {
(new Logger('')).error(message);
}
public static warn(message: string): void {
(new Logger('')).warn(message);
}
public static succ(message: string): void {
(new Logger('')).succ(message);
}
public static info(message: string): void {
(new Logger('')).info(message);
}
public log(level: string, message: string) {
const domain = this.domain.length > 0 ? `[${this.domain}] ` : '';
Logger.log(level, `${domain}${message}`);
}
public error(message: string): void { // 実行を継続できない状況で使う
this.log(chalk.red.bold('ERROR'), chalk.red.bold(message));
}
public warn(message: string): void { // 実行を継続できるが改善すべき状況で使う
this.log(chalk.yellow.bold('WARN'), chalk.yellow.bold(message));
}
public succ(message: string): void { // 何かに成功した状況で使う
this.log(chalk.blue.bold('INFO'), chalk.green.bold(message));
}
public info(message: string): void { // それ以外
this.log(chalk.blue.bold('INFO'), message);
}
}