34 lines
684 B
TypeScript
34 lines
684 B
TypeScript
export class Logger
|
|
{
|
|
name: string
|
|
static interceptors: LogInterceptor[] = []
|
|
constructor(name: string)
|
|
{
|
|
this.name = name
|
|
}
|
|
|
|
static AddInterceptor(interceptor: LogInterceptor)
|
|
{
|
|
Logger.interceptors.push(interceptor)
|
|
}
|
|
|
|
error(error: Error, payload: any = null)
|
|
{
|
|
console.error(error, payload)
|
|
Logger.interceptors.forEach((i) =>
|
|
{
|
|
i.call(this, error, payload)
|
|
})
|
|
}
|
|
|
|
info(message: string, payload: any = null)
|
|
{
|
|
console.info(message, payload)
|
|
Logger.interceptors.forEach((i) =>
|
|
{
|
|
i.call(this, message, payload)
|
|
})
|
|
}
|
|
}
|
|
export type LogInterceptor = (this: Logger, info: string | Error, payload: any) => void
|