mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-03 23:14:13 +00:00 
			
		
		
		
	Better logger
This commit is contained in:
		
							parent
							
								
									a3e37294e5
								
							
						
					
					
						commit
						f53a93ea13
					
				
					 2 changed files with 11 additions and 8 deletions
				
			
		| 
						 | 
				
			
			@ -25,9 +25,9 @@ import { Config } from './config/types';
 | 
			
		|||
import { lessThan } from './prelude/array';
 | 
			
		||||
import * as pkg from '../package.json';
 | 
			
		||||
 | 
			
		||||
const logger = new Logger('core');
 | 
			
		||||
const bootLogger = logger.createSubLogger('boot');
 | 
			
		||||
const clusterLog = logger.createSubLogger('cluster');
 | 
			
		||||
const logger = new Logger('core', 'cyan');
 | 
			
		||||
const bootLogger = logger.createSubLogger('boot', 'magenta');
 | 
			
		||||
const clusterLog = logger.createSubLogger('cluster', 'orange');
 | 
			
		||||
const ev = new Xev();
 | 
			
		||||
 | 
			
		||||
if (process.env.NODE_ENV != 'production' && process.env.DEBUG == null) {
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,24 +3,27 @@ import * as dateformat from 'dateformat';
 | 
			
		|||
 | 
			
		||||
export default class Logger {
 | 
			
		||||
	private domain: string;
 | 
			
		||||
	private color?: string;
 | 
			
		||||
	private parentLogger: Logger;
 | 
			
		||||
 | 
			
		||||
	constructor(domain: string) {
 | 
			
		||||
	constructor(domain: string, color?: string) {
 | 
			
		||||
		this.domain = domain;
 | 
			
		||||
		this.color = color;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public createSubLogger(domain: string): Logger {
 | 
			
		||||
		const logger = new Logger(domain);
 | 
			
		||||
	public createSubLogger(domain: string, color?: string): Logger {
 | 
			
		||||
		const logger = new Logger(domain, color);
 | 
			
		||||
		logger.parentLogger = this;
 | 
			
		||||
		return logger;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	public log(level: string, message: string, important = false): void {
 | 
			
		||||
		const domain = this.color ? chalk.keyword(this.color)(this.domain) : chalk.white(this.domain);
 | 
			
		||||
		if (this.parentLogger) {
 | 
			
		||||
			this.parentLogger.log(level, `[${this.domain}]\t${message}`, important);
 | 
			
		||||
			this.parentLogger.log(level, `[${domain}]\t${message}`, important);
 | 
			
		||||
		} else {
 | 
			
		||||
			const time = dateformat(new Date(), 'HH:MM:ss');
 | 
			
		||||
			const log = `${chalk.gray(time)} ${level} [${this.domain}]\t${message}`;
 | 
			
		||||
			const log = `${chalk.gray(time)} ${level} [${domain}]\t${message}`;
 | 
			
		||||
			console.log(important ? chalk.bold(log) : log);
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		
		Reference in a new issue