agentscape
Version:
Agentscape is a library for creating agent-based simulations. It provides a simple API for defining agents and their behavior, and for defining the environment in which the agents interact. Agentscape is designed to be flexible and extensible, allowing
64 lines (53 loc) • 1.53 kB
text/typescript
/* eslint-disable @typescript-eslint/no-explicit-any */
export enum LogLevel {
DISABLED = -1,
DEBUG = 0,
INFO = 1,
WARN = 2,
ERROR = 3
}
export default class Log {
private static level: number = 0
private static enabled: boolean = false
public static setLevel(level: LogLevel): void {
if (this.enabled && level === LogLevel.DISABLED) {
Log.disable()
} else {
if (!Log.enabled) {
Log.enable()
}
Log.level = level
}
}
public static enable(): void {
console.log('-- Logging is now enabled --')
Log.enabled = true
}
public static disable(): void {
console.log('-- Logging is now disabled --')
Log.enabled = false
}
public static getLevel(): LogLevel {
return Log.level
}
public static debug(...args: any[]): void {
if (Log.enabled && Log.level <= LogLevel.DEBUG) {
console.debug('DEBUG: ', ...args)
}
}
public static info(...args: any[]): void {
if (Log.enabled && Log.level <= LogLevel.INFO) {
console.info('INFO: ', ...args)
}
}
public static warn(...args: any[]): void {
if (Log.enabled && Log.level <= LogLevel.WARN) {
console.warn('WARN: ', ...args)
}
}
public static error(...args: any[]): void {
if (Log.enabled && Log.level <= LogLevel.ERROR) {
console.error('ERROR: ', ...args)
}
}
}